我正在研究即将进行的测试,并遇到了一个相当有趣的问题。我正在尝试在一组对象Books
内订购一组员工。我正在尝试根据员工的优先级从最高到最低排序。
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
}
答案 0 :(得分:0)
我想知道为什么你的Employee
不是Comparable
:
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;
}
}