Java 给出不同执行结果的HashMap和HashTable

Java 给出不同执行结果的HashMap和HashTable,java,hashmap,hashtable,Java,Hashmap,Hashtable,基本上,我知道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.keySe

基本上,我知道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和HashTable不能保证订单。如果你想要排序,你必须使用LinkedHashMap,如果你想对它进行排序,你必须使用TreeMap。

这是因为这两个类都不能保证迭代顺序

您可能需要查看以下内容:

Ohh感谢您快速而简洁的回复。从
HashMap
HashTable
的行为中我可以看出,新项添加在
HashMap
列表的末尾,但如果是
HashTable
则在第一个元素之后。所以我可以说
HashMap
在插入元素时附加元素?如果你想向自己证明这两门课之间的区别,为什么你会期望完全相同的结果?
HashMap    
A value: Hello    
B value: World    
C value: YoYo    
HashTable    
A value: Hello    
C value: YoYo    
B value: World