覆盖的比较器和Collections.sort

        Collections.sort(list, new Comparator<A>() {
        @Override
        public int compare(A a, A b) {
            return -a.getId().compareTo(b.getId());
        }
    });

如果在比较器的返回值前面加一个减号,会不会对应reverseOrder方法?

        Collections.sort(list, Collections.reverseOrder(new Comparator<A>() {
        @Override
        public int compare(A a, A b) {
            return a.getId().compareTo(b.getId());
        }
    }));

我的意思是,它会一直正常工作吗?

回答

-Integer.MIN_VALUE也是Integer.MIN_VALUE

如果你能保证compareTocan't return Integer.MIN_VALUE,它的工作原理是一样的(假设compareTo方法实现正确)。

否则,使用该reverseOrder方法或在表达式中交换aand会更安全b(这就是这样reverseOrder做的)。


以上是覆盖的比较器和Collections.sort的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>