HashMap 和 HashTable 给出不同的执行结果
HashMap and HashTable giving different Execution Result
基本上我知道HashMap和HashTable的区别
我试图通过实际编码来理解它们之间的区别。
这是我在 Java
中的主要方法
System.out.println("HashMap");
HashMap <String , String> map = new HashMap<String, String>();
map.put("A", "Hello");
map.put("B", "World");
Set<String> set = map.keySet();
map.put("C", "YoYo");
Iterator<String> itr = set.iterator();
while(itr.hasNext())
{
String temp = itr.next();
System.out.println(temp +" value: "+ map.get(temp));
}
System.out.println("HashTable");
Hashtable<String , String> table = new Hashtable<>();
table.put("A", "Hello");
table.put("B", "World");
Set<String> set2 = table.keySet();
table.put("C", "YoYo");
Iterator<String> itr2 = set2.iterator();
while(itr2.hasNext())
{
String temp = itr2.next();
System.out.println(temp +" value: "+ table.get(temp));
}
这是我得到的输出:
HashMap
A value: Hello
B value: World
C value: YoYo
HashTable
A value: Hello
C value: YoYo
B value: World
为什么会有两个不同的结果。
在这两种情况下,它不是以相同的方式排序吗?
谢谢。
HashMap 和 HashTable 不保证顺序。如果你想要排序你必须使用 LinkedHashMap,如果你想要它被排序你必须使用 TreeMap。
这是因为 类.
无法保证迭代顺序
您可能想看看以下内容:
is the Java HashMap keySet() iteration order consistent?
基本上我知道HashMap和HashTable的区别
我试图通过实际编码来理解它们之间的区别。
这是我在 Java
中的主要方法System.out.println("HashMap");
HashMap <String , String> map = new HashMap<String, String>();
map.put("A", "Hello");
map.put("B", "World");
Set<String> set = map.keySet();
map.put("C", "YoYo");
Iterator<String> itr = set.iterator();
while(itr.hasNext())
{
String temp = itr.next();
System.out.println(temp +" value: "+ map.get(temp));
}
System.out.println("HashTable");
Hashtable<String , String> table = new Hashtable<>();
table.put("A", "Hello");
table.put("B", "World");
Set<String> set2 = table.keySet();
table.put("C", "YoYo");
Iterator<String> itr2 = set2.iterator();
while(itr2.hasNext())
{
String temp = itr2.next();
System.out.println(temp +" value: "+ table.get(temp));
}
这是我得到的输出:
HashMap
A value: Hello
B value: World
C value: YoYo
HashTable
A value: Hello
C value: YoYo
B value: World
为什么会有两个不同的结果。
在这两种情况下,它不是以相同的方式排序吗?
谢谢。
HashMap 和 HashTable 不保证顺序。如果你想要排序你必须使用 LinkedHashMap,如果你想要它被排序你必须使用 TreeMap。
这是因为 类.
无法保证迭代顺序您可能想看看以下内容: is the Java HashMap keySet() iteration order consistent?