以下程序将如何工作?

时间:2018-07-22 17:51:38

标签: java arraylist collections comparator

我正在尝试通过使用小数点后两位对数字56,67,94,10进行排序。其实我没有得到返回1或-1的结果。

Collections.sort(arr, new Comparator<Integer>() {
        public int compare(Integer t1, Integer t2) {
            //System.out.print(" "+t1+" "+t2);
            if (t1 % 10 > t2 % 10) {
                return 1;
            }
            return -1;
        }
    });

1 个答案:

答案 0 :(得分:1)

当该数字相等时,您需要返回零。

最简单的方法是将比较器的主体替换为:

return Integer.compare(t1 % 10, t2 % 10);

或者,更简单:

Collections.sort(arr, Comparator.comparing(t -> t % 10));