2015-11-07 187 views
-2

我正在为即将到来的测试而学习,并且遇到了一个相当有趣的问题。我试图在一系列对象中排列一个员工队列,Books。我试图根据员工的优先级从高到低排列他们。Java:排序对象队列

class Employee{ 
String name; 
int waiting_time; 
int retaining_time; 
int priority; 
Book aBook; 
ArrayList <Book> booksRead = new ArrayList<Book>(); 

public Employee() 
{ 
    this.waiting_time=0; 
    this.retaining_time=0; 
} 

    public int getWaitingTime() 
{ 
    return waiting_time; 
} 

public void setRetainingTime(int retainingtime) 
{ 
    retaining_time = retainingtime; 
} 

public int getRetainingTime() 
{ 
    return retaining_time; 
} 

public void setPriority() 
{ 
    priority = waiting_time - retaining_time; 
} 

public int getPriority() 
{ 
    return priority; //sort on 
} 


} 

class Book{ 
String name; 
LocalDate start_date; 
LocalDate end_date; 
boolean archived; 
Queue<Employee> Employees = new LinkedList<>(); 

public Book() 
{ 

} 

//getters and setters omitted 
public void setQueue(Queue<Employee> qa) 
{ 
    Employees = qa; 
} 

public Queue<Employee> getQueue() 
{ 
    return Employees; 
} 
} 

我的想法是所有元素添加在队列中,所有的员工,到一个ArrayList,对它们进行排序,然后把他们一个在同一时间回到队列中,但是,这并不工作,由于到多个错误。任何和所有的帮助非常感谢!

我的想法

public static void reorder(ArrayList <Book> booksToCirculate) 
{ 
    ArrayList <Book> tmp = new ArrayList <Book>(); 
    for (Book b : booksToCirculate) 
    { 
     tmp.add(b); 
    } 
    tmp.sort(b.get); // I wanted to sort on the priority here, but i'm not sure how to 
} 
+2

_due多个errors_你想澄清? –

+1

有什么错误?不知道“一堆书中的员工排队”是什么意思。 – duffymo

+0

拍摄我以为我发布的代码,一秒 – Bob

回答

0

我不知道为什么你的EmployeeComparable

public class Employee implements Comparable<Employee> { 

    private int priority; 

    public class Employee(int p) { 
     this.priority = p; 
    } 

    public int compare(Employee that) { 
     return this.priority - that.priority; 
    } 
}