Java に SortedList がない理由
Java Collections Framework は、SortedSet や SortedMap など、データを管理および整理するための多数の構造を提供します。インターフェース。ただし、ソートされたセットとマップが利用できるにもかかわらず、Java には明示的な SortedList クラスがありません。
SortedList が存在しない理由
Java の原因は次のとおりです。考慮事項:
-
リストのセマンティクスの保持: Java のリストは、ランダム アクセス、予測可能な要素の順序付け、任意の位置への挿入などの基本的な操作を提供します。並べ替えられたリストでは、並べ替えられた状態を維持するために大幅な内部並べ替えが必要になり、これらのコア リスト プロパティに違反します。
-
機能の重複: 並べ替えられたコレクションは、SortedSet および SortedMap の形式ですでに存在します。要素のソートされた表現を提供します。 SortedList は単に冗長な実装を提供するだけです。
ソートされたリストの代替手段
リストのようなコンテキストでソートされた機能が必要な場合は、次のことを検討できます。次のオプション:
-
SortedSet またはマルチセット: ソートされたセット (TreeSet など) は、ソートされた要素を自動的に維持し、挿入中に一貫した順序を保証します。あるいは、重複を許可するコレクションの場合は、Guava の TreeMultiset のようなマルチセットを使用できます。
-
Collections.sort(): による手動並べ替え java.util.Collections を使用してリストを手動で並べ替えることができます。 .sort() メソッド。このメソッドでは、並べ替え基準を定義するために Comparator (または要素の自然順序付け) が必要です。
-
Wrap with PriorityQueue: java.util.PriorityQueue は並べ替えられたキュー表現を提供できます。 PriorityQueue は List インターフェイスを実装しませんが、その poll() 操作は昇順で次に上位の要素を取得します。
-
カスタム SortedList クラスを作成します: 独自の SortedList クラスを実装するには、次のようにします。これは設計の練習ですが、一般的には、簡素化のために既存の並べ替えられたコレクションを活用することをお勧めします。効率性。
以上がJava には SortedList クラスがないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。