簡體   English   中英

Collections.sort(list) 和 list.sort(Comparator) 的區別

[英]Difference between Collections.sort(list) and list.sort(Comparator)

有什么理由讓我更喜歡Collections.sort(list)方法而不是簡單地調用list.sort()嗎? Collections.sort在內部只是調用了List類的sort方法。

令人驚訝的是,幾乎每個人都告訴我使用Collections.sort 為什么?

List.sort(comparator)方法是在 Java 8 中引入的,而實用方法Collections.sort從 Java 1.2 開始就已經存在了。

因此,您會在 Internet 上找到很多提到該實用程序方法的參考資料,但這只是因為它在 JDK 中存在的時間更長。

請注意, Collections.sort實現更改是在 8u20 中進行的

這只是對 API 的更改。 對於像 Java 這樣被廣泛采用的語言,通常會在一段時間內發生這種情況,舊方法更可取,以保持對遺留的支持。

在這段時間之后,舊的 API 將被棄用(或者可能不會,兩者都可以無限期地保留)。 在這段時間內,可能會對新 API 進行改進,使其功能與原始實現略有不同,從而鼓勵開發人員采用它。 新 API 的要求/結果可能略有不同,實現可能會發生巨大變化。

然后,最終,新 API 接管,不再需要和刪除舊 API。 在像 Java 這樣被廣泛采用的語言中,這可能需要數年或數十年的時間。 開發人員可以制定刪除 API 的計划,但社區被迫將其保留。

簡單的答案是Collections.sort委托給List.sort 由於一個調用委托給另一個有等效的。 但是,最好使用List.sort來簡單地避免額外的方法調用。

暫無
暫無

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

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