単にCollection.sort(list)
を呼び出すよりもlist.sort()
メソッドを優先する必要がある理由はありますか?内部的にはCollection.sort
はsort
クラスのList
メソッドを呼び出すだけです。
ほとんどの人がCollection.sort
を使うように言っているのは驚くべきことです。どうして?
参照しているメソッド List.sort(comparator)
はJava 8で導入されましたが、ユーティリティメソッド Collections.sort
Java 1.2。
そのため、インターネット上でそのユーティリティメソッドに言及する多くのリファレンスがありますが、それは、JDKにずっと以前から存在しているからです。
Collections.sort
の実装の変更は8u20 で行われたことに注意してください。
これは単にAPIの変更です。 Javaのように広く普及している言語の場合、通常発生するのはしばらくの間、レガシーサポートを維持するために古い方法が推奨されます。
この期間が経過すると、古いAPIは非推奨になります(または、おそらくそうではなく、両方が無期限にそのまま残る可能性があります)。この期間内に新しいAPIに改良が加えられ、その機能が元の実装からわずかに逸脱し、開発者に採用を促す可能性があります。新しいAPIの要件/結果は少し異なる場合があり、実装は劇的に変わる可能性があります。
その後、最終的に新しいAPIが引き継ぎ、古いAPIは不要になり削除されます。 Javaと広く採用されている言語では、これには数年、または数十年かかる場合があります。開発者はAPIを削除する計画を立てることができますが、コミュニティーにそれを残さざるを得ません。
簡単な答えは、Collections.sort
がList.sort
に委任することです。 1つの呼び出しが他の呼び出しに委譲するため、同等のものがあります。ただし、余分なメソッド呼び出しを単に回避するために、List.sort
を使用することをお勧めします。