[解決済み】HashMap、LinkedHashMap、TreeMapの違いについて
2022-03-23 07:17:11
質問
とはどのような違いがあるのでしょうか?
HashMap
,
LinkedHashMap
と
TreeMap
をJavaで表示できますか?
この3つにはすべて
keySet
と
values
. とは何ですか?
Hashtable
s?
Map 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 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 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());
解決方法は?
3つのクラスはすべて
Map
インターフェイスを持ち、ほとんど同じ機能を提供します。最も重要な違いは、エントリーの反復処理を行う順番です。
-
HashMap
は、反復処理の順序を全く保証しません。新しい要素が追加されると、完全に変更される可能性さえあります(そして、変更されるでしょう)。 -
TreeMap
は、そのキーのcompareTo()
メソッド(または外部で提供されるComparator
). さらにSortedMap
インターフェイスがあり、このソート順序に依存するメソッドが含まれています。 -
LinkedHashMap
は、エントリがマップに格納された順番に繰り返し処理を行います。
ハッシュテーブル。
は、ハッシュベースのマップの総称である。Java APIの文脈では
Hashtable
は、Java 1.1時代、コレクションフレームワークが存在する以前の時代からある、時代遅れのクラスです。なぜなら、そのAPIは機能が重複する旧式のメソッドでごちゃごちゃしており、そのメソッドは同期されているからです(これはパフォーマンスを低下させる可能性があり、一般的には役に立ちません)。使用方法
ConcurrentHashMap
Hashtableの代わりに
関連
-
[解決済み] tempとは何ですか、またjavaにおけるtempの用途は何ですか?
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] JDKとJREの違いは何ですか?
-
[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] JAVA_OPTIONS、JAVA_TOOL_OPTIONS、JAVA_OPTSの違いについて
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] Javaでdoubleをfloatに変換する
-
[解決済み] HashMapとTreeMapの違いは何ですか?[重複あり]