簡體   English   中英

覆蓋比較器和 Collections.sort

[英]Overridden comparator and 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

如果你能保證compareTo不能返回Integer.MIN_VALUE ,它的工作原理是一樣的(假設compareTo方法正確實現)。

否則,使用reverseOrder方法或在表達式中交換ab會更安全(這就是reverseOrder所做的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM