简述HashMap和HashTable的区别
这两个都实现了Map接口,都可以存放键值对。其主要的区别有以下几点:
1、HashMap不是线程安全的,而HashTable是。这意味着在多线程下使用HashTable不需要额外处理线程同步的问题。不过也因此,HashMap的效率要稍微高一点。
2、HashMap可以接受值为null的key和value,而HashTable则不行。
3、HashMap的迭代器是Fail-Fast迭代器,而HashTable不是。所以在迭代的时候,如果HashMap的结构发生改变(比如增加或者删除了元素),那么就会抛出ConcurrentModificationException异常来提示程序员,看是否进行重新遍历或是别的操作。