いつ誰が使用するか教えてもらえますかTREEMAP。私はThis link を通過しましたが、私の答えは見つかりませんでした。TreeMapを使用する理由と使用方法
私の考えによれば、私たちはあなたのキーに応じてデータをソートするためにトリマップを使用し、他の方法でも同じことを達成できます。
いつ誰が使用するか教えてもらえますかTREEMAP。私はThis link を通過しましたが、私の答えは見つかりませんでした。TreeMapを使用する理由と使用方法
私の考えによれば、私たちはあなたのキーに応じてデータをソートするためにトリマップを使用し、他の方法でも同じことを達成できます。
Aに基づくRed-BlackツリーNavigableMapの実装。マップは、キーの自然順序付けに従って、またはマップ作成時に提供されるコンパレータによって使用されるコンストラクタに応じてソートされます。
この実装は、containsKey、get、putおよびremove操作のログ(n)時間を保証します。アルゴリズムは、Cormen、Leiserson、Rivestのアルゴリズム入門のアルゴリズムの適応です。
使用このデータ構造をあなたがあなた自身のソートロジックを記述するためにTreeMap(Comparator<? super K> comparator)
をコンストラクタにcomparator
を渡すことができます昇順だけでなく、キーを命じ必要です。同様に、自己平衡型バイナリ検索ツリーの一種です。
オブジェクトをあるキーで並べ替える効率的な方法です。ランダムアクセスも重要です。このデータ構造を使用すると、順番に反復することができます。
ランダムアクセスが必要ない場合は、ソートされたセット/バッグまたはリストを使用してください。
のは、あなたが辞書を実装し、アルファベット順にそれを印刷、あなたはTreeMapのとTreeSetの組み合わせを使用することができますしたいとしましょう:
public static void main(String args[]) {
Map<String, Set<String>> dictionary = new TreeMap<>();
Set<String> a = new TreeSet<>(Arrays.asList("Actual", "Arrival", "Actuary"));
Set<String> b = new TreeSet<>(Arrays.asList("Bump", "Bravo", "Basic"));
dictionary.put("B", b);
dictionary.put("A", a);
System.out.println(dictionary);
}
すべてのソートが自動的に行われ、それは印刷:
{A = [実際、アクチュアリー、到着]、B = [基本、ブラボー、バンプ]}
もちろん、構造を手動でもソートすることはできましたが、TreeMap/Setを使用する方がより効率的になり、コード行数(バグ数)が減り読みやすくなります。
他の方法もありますが、これが最も簡単です。キーバリューペアをソートして他にどのように提案しますか? – jlordo
"私の思うように、キーマップに基づいてデータをソートし、他の方法でもデータをソートすることができます。 - まさに! – xagyg
@jlordoの比較可能なインターフェイスとコンパレータのインターフェイス。 –