【发布时间】:2016-03-02 05:58:25
【问题描述】:
我有一个时间表课程,我有
ArrayList<Processes> processes = new ArrayList<Process>();
在这个类中,我解析一个输入文件,获取 3 个值并创建一个对象数组。
Process object = new Process(processName, arrival, burst);
processes.add(object);
我的目标是按“到达”时间对数组列表进行排序。所以我可以将项目添加到链表队列。我在分类它时遇到了巨大的困难,我尝试了比较器无济于事。我有一个 Process 类,其中有我的 getName、getArrival、getBurst 方法。以及:
Comparator<Process> p = new Comparator<Process>(){
public int compare(Process p1, Process p2){
return(p1.getArrival() - p2.getArrival());
}
};
for(int i = 0; i<30; i++ ){
if(arrival == i )
System.out.println("Time " + i + ": " + "P"+ id + " " + description);
if(selected = i )
System.out.println("Time " + i + ": " + "P"+ id + " " + description);
if(finished = i )
System.out.println("Time " + i + ": " + "P"+ id + " " + description);
}
【问题讨论】:
-
你在哪里调用排序?也不要使用
a-b最好使用Long.compare(Long)方法。 -
所以你正在尝试使用
Collections.sort()进行排序? -
@Kartic 是的,我打算使用 Collections.sort(processes, object.p)。我在 processes.add(object) 之后的调度类中调用该排序
-
在 Java(和 C#:IComparable)中的任何排序对象中,您使用的对象的类应该实现 Comparable 以便您可以使用 compareTo(Object o) 轻松对它们进行排序。
标签: java sorting linked-list queue