【问题标题】:Java: Sorting a Queue of ObjectsJava:对对象队列进行排序
【发布时间】:2015-11-07 02:17:59
【问题描述】:

我正在为即将到来的考试而学习,遇到了一个相当有趣的问题。我正在尝试在对象数组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
}

【问题讨论】:

  • 由于多个错误您想澄清一下吗?
  • 错误是什么?也不知道“一堆书里的员工队列”是什么意思。
  • 我以为我发布了代码,一秒钟
  • @SotiriosDelimanolis 我最后一次尝试有多次,这一次我有点迷失了
  • 另外,不要在 cmets 中发布重要细节。编辑您的问题以包含它们。

标签: java sorting object queue


【解决方案1】:

我想知道为什么你的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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-20
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多