ハッシュ マップの取得順序は維持されますか?
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 などの代替データ構造を選択できます。 .
以上がJava の HashMap は取得順序を保証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。