HashMap、LinkedHashMap、TreeMapの違い 質問する

HashMap、LinkedHashMap、TreeMapの違い 質問する

Java におけるHashMap、、LinkedHashMapの違いは何ですか?TreeMap

keySet3 つすべてに とがあるため、出力に違いは見られませんvalues

また、Hashtablesとは何ですか?

Map<String, String> m1 = new HashMap<>();
m1.put("map", "HashMap");
m1.put("schildt", "java2");
m1.put("mathew", "Hyden");
m1.put("schildt", "java2s");
print(m1.keySet()); 
print(m1.values()); 

SortedMap<String, String> sm = new TreeMap<>();
sm.put("map", "TreeMap");
sm.put("schildt", "java2");
sm.put("mathew", "Hyden");
sm.put("schildt", "java2s");
print(sm.keySet()); 
print(sm.values());

LinkedHashMap<String, String> lm = new LinkedHashMap<>();
lm.put("map", "LinkedHashMap");
lm.put("schildt", "java2");
lm.put("mathew", "Hyden");
lm.put("schildt", "java2s");
print(lm.keySet()); 
print(lm.values());

ベストアンサー1

私は視覚的なプレゼンテーションを好みます:

財産 ハッシュマップ ツリーマップ リンクハッシュマップ
反復順序 順序は保証されず、時間の経過とともに一定のままになります 自然な順序に従って並べられた 挿入順序
取得 / 配置 / 削除 / containsKey オー(1) O(log(n)) オー(1)
インターフェース 地図 ナビゲート可能なマップ、マップ、ソートされたマップ 地図
NULL値/キー 許可された 価値のみ 許可された
フェイルファスト行動 イテレータのフェイルファスト動作は保証できず、同期されていない同時変更が存在する場合、確実な保証を行うことは不可能である。 イテレータのフェイルファスト動作は保証できず、同期されていない同時変更が存在する場合、確実な保証を行うことは不可能である。 イテレータのフェイルファスト動作は保証できず、同期されていない同時変更が存在する場合、確実な保証を行うことは不可能である。
実装 バケツ 赤黒木 二重リンクバケット
同期されている 実装が同期されていない 実装が同期されていない 実装が同期されていない

おすすめ記事