到底是什麼的Collections.sort()
以下過載:Collections.sort()適用於Comparable或Comparator?
sort(List<T> list, Comparator<? super T> c)
的要求作爲第二個參數?
例子:我開始爲7個隨機整數的列表:
List<Integer> listOfInts = new ArrayList<>();
Random rand = new Random(System.currentTimeMillis());
for (int i = 0; i < 7; i++) {
listOfInts.add(rand.nextInt());
}
然後我嘗試使用Collections.sort()
作爲對它們進行排序:
Collections.sort(listOfInts, Integer :: compare);
還有:
Collections.sort(listOfInts, Integer :: compareTo);
它們都是工作。 爲什麼不使用compareTo()
排序集合的調用會拋出/失敗?compareTo()
的簽名與compare()
的簽名完全不同。
http://stackoverflow.com/questions/420223/what-is-the-difference-between-compare-and-compareto – msadler
我認爲你會對Java 8中引入的lambdas有些困惑。嘗試在Java 7中你將能夠輕鬆看到它。 –
@msadler:給出相同答案的方法與方法相同。 'compare'比較兩件事物,而在一件事物上調用'compareTo'來比較另一件事物。我已經在我的問題的最後一行提到了它。無論如何,謝謝你在這裏鏈接這個答案。我在發佈這個問題之前閱讀了它,但它很好地鏈接了它。 – displayName