ホームページ > Java > &#&チュートリアル > Java の HashMap は取得順序を保証しますか?

Java の HashMap は取得順序を保証しますか?

Susan Sarandon
リリース: 2024-12-14 08:13:10
オリジナル
431 人が閲覧しました

Does Java's HashMap Guarantee Retrieval Order?

ハッシュ マップの取得順序は維持されますか?

Java では、HashMap はデータの保存と取得に特定のアルゴリズムを採用しているため、一部のユーザーは疑問に思っています。値が取得される順序。コード スニペットを詳しく調べると、HashMap の取得順序の背後にある真実が明らかになります。

import java.util.HashMap;

public class HashMapExample {
   public static void main(String[] args) {
       HashMap<Integer, String> hashmap = new HashMap<Integer, String>();
       hashmap.put(1, "apple" );
       hashmap.put(2, "lemon" );
       hashmap.put(3, "orange" );
       hashmap.put(4, "banana" );
       hashmap.put(5, "litchi" );
       hashmap.put(6, "mango" );
       hashmap.put(7, "papaya" );

       System.out.println(hashmap.size());

       for (String key : hashmap.values()) {
           System.out.println(key);
       }
   }
}
ログイン後にコピー

出力:

7
apple
lemon
orange
banana
litchi
mango
papaya
ログイン後にコピー

驚くべき動作:

驚くべきことに、値は挿入されたのと同じ順序で取得されます。ただし、この観察は必ずしも当てはまらない可能性があります。

真実:

HashMap Javadoc によると、取得順序が時間の経過とともに一貫性を保つという保証はありません。 。これは、取得順序が任意に変更できることを意味します。

一貫した順序付けが必要ですか?

一貫した順序付けが重要な場合は、LinkedHashMap や TreeMap などの代替データ構造を選択できます。 .

  • LinkedHashMap: 挿入順序またはアクセス順序を維持します。 (LIFO)
  • ツリーマップ: キー
に基づいて比較順序を維持します。

以上がJava の HashMap は取得順序を保証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート