Java 自定义比较器isn';t排序

Java 自定义比较器isn';t排序,java,sorting,arraylist,comparator,Java,Sorting,Arraylist,Comparator,我正在尝试模拟一个CPU调度程序。我有一个I类进程的ArrayList。我试图按照进程的到达时间对数组列表进行排序。我一定是漏掉了什么,因为当我打印我的ArrayList时,什么也没发生 我一直在浏览其他用户的帖子,但我没有发现任何对我有意义的东西 这是我的比较器和调用排序: class ArrivalTimeComparator implements Comparator<Process> { @Override public int compare(Pro

我正在尝试模拟一个CPU调度程序。我有一个
I类
进程的
ArrayList
。我试图按照进程的到达时间对数组列表进行排序。我一定是漏掉了什么,因为当我打印我的
ArrayList
时,什么也没发生

我一直在浏览其他用户的帖子,但我没有发现任何对我有意义的东西

这是我的
比较器
和调用
排序

class ArrivalTimeComparator implements Comparator<Process> {
    @Override
        public int compare(Process p1, Process p2) {
        return (int) (p1.getArrivalTime()-p2.getArrivalTime());
    }
}

Collections.sort(processArray, new ArrivalTimeComparator());
类ArrivalTimeComparator实现Comparator{
@凌驾
公共整数比较(进程p1、进程p2){
返回(int)(p1.getArrivalTime()-p2.getArrivalTime());
}
}
排序(processArray,new ArrivalTimeComparator());
此代码

(int)(p1.getArrivalTime()-p2.getArrivalTime())
可能会出现整数运算溢出,因此可能会得到奇数结果。如果您使用的是Java7,请使用

Integer.compare(p1.getArrivalTime(), p2.getArrivalTime()); //or Long.compare
如果您使用的是Java 6或更低版本:

return p1.getArrivalTime() > p2.getArrivalTime() ? 1 : p1.getArrivalTime() < p2.getArrivalTime() ? -1 : 0;
返回p1.getArrivalTime()>p2.getArrivalTime()?1:p1.getArrivalTime()
此代码

(int)(p1.getArrivalTime()-p2.getArrivalTime())
可能会出现整数运算溢出,因此可能会得到奇数结果。如果您使用的是Java7,请使用

Integer.compare(p1.getArrivalTime(), p2.getArrivalTime()); //or Long.compare
如果您使用的是Java 6或更低版本:

return p1.getArrivalTime() > p2.getArrivalTime() ? 1 : p1.getArrivalTime() < p2.getArrivalTime() ? -1 : 0;
返回p1.getArrivalTime()>p2.getArrivalTime()?1:p1.getArrivalTime()
什么是getArribalTime()返回类型?什么是getArribalTime()返回类型?