ベストアンサー
リスト、マップ、セットの違いについて考えてください。
マップは、キーを使用して物事を検索できる構造です。ルックアップ用に設計する場合、多くのキー比較があり、ルックアップを高速化する必要があることに気付きます。ツリーは、ブランチ内でキーを整理することにより、キー比較プロセスを高速化します。これにより、キー比較の数が削減されます。作成する必要があります。
セットには重複するアイテムはありません。したがって、アイテムを追加するたびに、既存のアイテムと比較して、重複しているかどうかを確認する必要があります。これでマップと同じ問題に戻ったので、ツリーを使用してアイテムを整理し、比較を減らします。
リストには順序があるだけなので、リストは順序がないように簡単に設計できます。」リストの順序で次の(または前の)アイテムを取得するには、比較が必要です。
したがって、ツリーはより良いマップまたはセットを作成するのに役立ちますが、実際にはより良いリストを作成するのに役立ちません。 。
ソート済みリストについて話している場合、アイテムはソート順にリストに挿入されます。これで比較に戻ります。ツリーが並べ替えられたリストの作成に役立つように並べ替えます。
回答
リストは順序付けられていますコレクション-つまり、i番目の要素にランダムにアクセスする機能が必要です。コレクションが内部で要素をシャッフルする場合、挿入順序は内部データ構造内の要素の順序と同じにはなりません。したがって、インデックスベースのアクセスに依存することはできなくなりました。したがって、SunはSortedListまたはTreeListクラスを提供しませんでした。Collections.sort(..)を使用して同じことを実現できます。
Apache commons-collectionsはTreeListクラスを提供します( TreeList(Commons Collections 3.2.1 API))が、ソートされたリストではなく、ツリーデータ構造を使用して要素を内部に格納するために呼び出されます