HashMap与HashTable
来源:互联网 发布:单片机烧录软件 编辑:程序博客网 时间:2024/05/21 21:50
首先是看到了觉得nice的博客:http://blog.csdn.net/java2000_net/article/details/2512510
里面通过查看源码总结出以下几点:
可见Hashtable 继承自 Dictiionary 而 HashMap继承自AbstractMap
其中 Hashtable put(大部分)方法(通过查看不仅仅是put方法,大部分方法都加了synchronized关键字)
是同步的
不允许value==null
HashMap put方法(同上,看到的方法都没有synchronized关键字)
是非同步的
允许key==null
并没有对value进行任何调用,所以允许为null。
而HashMap的contains方法
public synchronized boolean contains(Object value) {
if (value == null) {
throw new NullPointerException();
}
Entry<?,?> tab[] = table;
for (int i = tab.length ; i-- > 0 ;) {
for (Entry<?,?> e = tab[i] ; e != null ; e = e.next) {
if (e.value.equals(value)) {
return true;
}
}
}
return false;
}
//table的初始化如下
public Hashtable(int initialCapacity, float loadFactor) {
//省略代码。。
table = new Entry<?,?>[initialCapacity];
}
containsValue方法:
public boolean containsValue(Object value) {
return contains(value);
}
由于这两个方法,本质相同,
所以在新集合中
HashMap去掉了contains方法。
- hashtable与hashmap
- HashMap 与 Hashtable
- HashMap 与HashTable 区别
- Hashtable与HashMap
- HashTable与HashMap
- Hashtable与hashmap 比较
- HashMap与HashTable区别
- HashMap与HashTable
- Hashtable与HashMap区别
- HashMap与HashTable区别
- Hashtable与hashmap 比较
- hashTable与HashMap区别
- Hashtable与HashMap
- HashMap与HashTable区别
- HashMap与Hashtable区别
- HashMap与HashTable区别
- hashMap与hashTable区别
- HashTable、HashMap与HashSet
- 强人工智能资料
- 《MySQL必知必会》学习笔记二------掌握部分
- 蓝桥杯方格填数
- H264编码器
- python3.x安装ipython notebook
- HashMap与HashTable
- 视频压缩编码的基本原理
- 文件版本管理器
- Freebase Data Dump结构初探
- 我的web前端自学之路-心得篇:我为什么要学习web前端?
- CAVLC基于上下文自适应的可变长编码
- 最小公倍数(LCM)与最大公约数(GCD)
- CABAC基于上下文的自适应二进制熵编码
- 笔试题8