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不允许。还听说...