Java-HashMap、HashSet、hashTable

HashMap:
key:可null,重复的key对应的value会出现后面覆盖前面的情况。
value:可null;

引用:数组,数组中存链表。


HashSet
使用HashMap的实现存储数据,所以有HashMap key的特性,无序(hashcode运算了),可null。
代码如下:

add方法:
return map.put(e, PRESENT)==null;

hashtable
与hashMap类似,key不能为null,线程安全的synchronized


引用:

hashtable能保证线程安全,但有一种更高效的方式就是使用CocurrentHashMap来保证线程安全,同时效率又高;

hashtable是锁住对象的方法,一次只能有一个线程去hashtable里面拿,而CocurrentHashMap是只锁数组[ i ] ,所以CocurrentHashMap的效率会比hashtable快很多,又比hashmap安全性要高 

 

猜你喜欢

转载自www.cnblogs.com/dava/p/9592609.html