Hashtable和HashMap存在亮点典型区别:
1、Hashtable是一个线程安全的Map实现,但是hashMap是线程不安全的实现,所以HashMap比HashTable的性能高一点,但如果有多个线程访问同一个map对象时,使用HashTable实现会相对更好。
2、Hashtable不允许使用null值作为key和value,如果试图把null值放进Hashtable中,将会引发NullPointerException异常,但HashMap可以使用null值作为key或value.
由于Hashmap是不允许key值重复的,所以只能有一对键值对的key设置为null,不过可以设置无数个value值为value是没有问题的!
Map集合的遍历方法,通过foreach遍历:
例如有个集合是map集合,遍历方法为:
for(Object key:map,keyset()){
map.get(key);//得到value
}
注意Hashtable是一个很古老的类,甚至名字都没有遵守Java的命名规范,所以和Vector类似,尽量少用这个类,如果需要创建线程安全的Map实现类,也不需Hashtable,用collections工具类把HashMap变成线程安全的就可以了!
具体怎么实现同步呢?
同步方法:Map m = Collections.SynchronizedMap(new HashMap());这样这个集合就是线程安全集合了,list集合,set都可以通过此方法实现!