public class TestClass {
public static void main(String[] args)
{
HashMap<String,Integer> testMap = new HashMap<String,Integer>();
testMap.put("Key1", 1);
testMap.put("Key2", 2);
testMap.put("Key3", 3);
testMap.put("Key4", 4);
testMap.put("Key5", 5);
//[Key2, Key1, Key4, Key3, Key5] //java7
//[Key2, Key1, Key5, Key4, Key3] //java8
System.out.println(testMap.keySet().toString());
}
}
なぜキーの順序に違いがありますか?Java 7では、HashMap.KeySet()が異なる順序でキーを返します。Java 8
実際には、セット内の要素の順序(keySetなど)は定義されておらず、何でもかまいません。特定の注文が必要な場合は、SortedMapを使用するか、キーを使用する前にソートしてください。 Javaのバージョンの変更は、HashMap内の値を保持するために異なるサイズの配列を使用することにつながります(ちょっと推測すると)。 –
セットの順序はありません – Dariusz
プログラムを実行してキーセットを取得した回数で、ほとんどの場合、違いが見つかります。したがって、Java 7またはJava 8のキーセットコードには違いはありません。 – Imran