Avatar ·

HashMap和Hashtable在Java中的区别是什么?

大家好!我开始学习Java Collections Framework,遇到了两个相似的类:HashMap和Hashtable。两者似乎都实现了Map接口并存储键值对。但我注意到,在现代代码中大家都使用HashMap,而Hashtable被认为已过时。 我写了一个简单的例子,两个类的行为看起来相同: ```java import java.util.*; public class MapTest { public static void main(String[] args) { Map hashMap = new HashMap<>(); hashMap.put("key1", "value1"); hashMap.put(null, "nullValue"); System.out.println("HashMap: " + hashMap.get("key1")); Hashtable hashtable = new Hashtable<>(); hashtable.put("key1", "value1"); // hashtable.put(null, "nullValue"); // 这会抛出NullPointerException System.out.println("Hashtable: " + hashtable.get("key1")); } } ``` 我看到HashMap允许null键,而Hashtable不允许。还听说...