集合如何在Java中定义基于两个变量进行比较的比较器
我想创建一个比较器,这样一来,到达时间较短的进程将首先出现在排序中,如果两个进程的到达时间相同,则具有较低进程id的进程将首先出现在排序中。我尝试了以下代码,但似乎不起作用。有人看到它有缺陷吗
public class FCFSComparator implements Comparator<Process>
{
public int compare(Process o1, Process o2)
{
int result = o1.getArrivalTime() - o2.getArrivalTime();
if(result == 0)
{
return (o1.getPid() < o2.getPid()) ? -1 : 1;
}
else
{
return result;
}
// return (result != 0 ? result : o1.getPid() - o2.getPid());
}
}
具体来说,考虑到以下过程
pid = 0 arrival time = 10
pid = 1 arrival time = 30
pid = 2 arrival time = 15
pid = 3 arrival time = 15
pid = 4 arrival time = 66
最后我得到了以下订单
Pid = 0 arrival time = 10
Pid = 2 arrival time = 15
Pid = 1 arrival time = 30
Pid = 4 arrival time = 66
Pid = 3 arrival time = 15
共 (0) 个答案