首页 > 解决方案 > 按对象的值对linkedList进行排序

问题描述

对于一项任务,我的任务是创建一个基于优先级的支持票证系统,其中包含用户的姓名、ID、处理程序和优先级,但是具有更高优先级的票证在要处理的列表中排在首位。

我有三个班。主要:我添加/删除和更改票证优先级的地方。TicketSystem:包含票证的构造函数以及 getter 和 setter 方法 LinkedList:具有插入、删除 printList 并且应该具有 sortList

到目前为止,我已经确定算法需要冒泡排序,因为 Priority 是一个 int 值,但我不太确定如何接收优先级的值然后对其进行排序。

public class TicketSystem {
private  String handler;
private  int priority;
private  String iD;
private  String creator;

public TicketSystem() {

}


public String getHandler ( ) {
    return handler;
}

public int getPriority () {
    return priority; 
}

public String getID () {
    return iD;
}
public String creator () {
    return creator; 
}

public void setID (String i)  {

    this.iD = i; 

}
public void setHandler (String h) {
    this.handler =  h; 
}
public void setPriority (int p ) {
this.priority = p; 
}

public String setCreator (String c) {
return this.creator = c;
}



public void addTicket( String h, int p, String c, String iD) {
    this.handler = h;
this.priority = p;
this.iD = iD; 
this.creator = c;
}




@Override
public String toString() {
   String output = "";
   output += "Handler: " + handler +", ";
   output += "Priority: " + priority + ", ";
   output += "Creator: "  + creator + ", ";
   output += "ID: " + iD + " ";
   return output;

}




}




 public class LinkedList {                                 
 private Node head;
 public LinkedList(TicketSystem ticket) {          
 head = new Node();                            
 head.ticket = ticket;                            
 head.link = null;                              
 }


   public boolean insertItem(TicketSystem ticket) { 
   Node n = new Node();                          
   Node new_node;
   new_node = head;                            
   while (new_node.link != null) {             
        new_node = new_node.link;                
   }
   n.ticket = ticket;                          
   n.link = null;                                
   new_node.link = n;                            
   return true; 

  }

   public void printList() {                   
   Node z = head;                         
   while (z!= null) {                           
       System.out.println(z.ticket.toString());
       z = z.link;
   }
 }

  public boolean deleteItem(TicketSystem ticket) { 
   if(ticket.equals(head.ticket)) {
       head = head.link;   
       return true; 
   } else {
       Node prevNode = head;         
       Node curNode = head.link;    
       while(curNode != null && !(curNode.ticket == ticket)) {
               prevNode = curNode;  
               curNode = curNode.link;  

       }
       if(curNode != null) {  
           prevNode.link = curNode.link;
           return true;
       } else {
           return false; 
       }
     }

  }

  /* sort list */

  public void sortList() {
   TicketSystem ts = new TicketSystem();
   }
   class Node {                                  
     private TicketSystem ticket;    
     private Node link;   
   }
 }       

标签: javalinked-list

解决方案


推荐阅读