HashTable与HashMap的区别
来源:互联网 发布:mac pro 强制关闭程序 编辑:程序博客网 时间:2024/05/22 07:09
一,首先说说HashTable与Map的区别
1.Map是一个接口,而HashTable是一个具体的实现,是Dictionary的具体实现。说HashTable是Map的准确点来说接口是不准确的。
2.Map可以通过key,value和key-value对迭代,而HashTable只支持前两种迭代方式。
3.HashTable中的contains根据传入的value返回布尔值。Map接口同时提供containsValue和containsKey两种方法。
二,HashTable和HashMap的区别
1.HashTable是Disctionary的具体实现,HashMap是继承Map接口。
2.HashTable是同步,线性安全的,效率慢。HashMap是非同步,线性不安全的,通过Map Collection.synchronizedMap(Map m)来获得线性安全。
3.HashTable不允许null key,null value;而HashMap允许。
4.HashTable有contains方法,HashMap分为containsKey和containsVaule方法。
三,hashcode和equals方法
由于作为key的对象将通过计算其散列函数来确定与之相对应的value的位置,因此任何作为key的对象都必须实现hashcode和equals的方法。
hashcode和equals的方法继承自根类Object,如果你用自定义的类当作key的话,要相当小心,按照散列函数的定义,如果两个对象相同,即obj1.equals(obj2)=true,则它们的hashCode必须相同,但如果两个对象不同,则它们的hashCode不一定不同,如果两个不同对象的hashCode相同,这种现象称为冲突,冲突会导致操作哈希表的时间开销增大,所以尽量定义好的hashCode()方法,能加快哈希表的操作。如果相同的对象有不同的hashCode,对哈希表的操作会出现意想不到的结果(期待的get方法返回null),要避免这种问题,只需要牢记一条:要同时复写equals方法和hashCode方法,而不要只写其中一个。
- HashTable与HashMap的区别
- HashMap与Hashtable的区别
- Hashtable与HashMap的区别:
- HashMap 与 Hashtable 的区别?
- HashMap与HashTable的区别
- HashMap与Hashtable的区别
- HashMap与Hashtable的区别
- HashTable与HashMap的区别
- Hashtable与HashMap的区别
- HashMap与Hashtable的区别
- HashMap与HashTable的区别?
- hashtable与hashmap的区别
- HashMap与Hashtable的区别
- HashMap与Hashtable的区别
- HashMap与Hashtable的区别
- HashMap与Hashtable的区别
- hashtable与hashmap的区别
- HashMap与Hashtable的区别
- java学习笔记(四)-- 实践篇
- 学了三年的PS 全部在这里了,都是精华(photoshop常用操作)
- 标签taglib prefix
- grread捕捉
- 第四周作业-多线程编程
- HashTable与HashMap的区别
- ICMP协议
- 榕树群群聊记录06(群号1326585)
- python的scikit-learn的安装
- 【暮色天】弱势延续 新低不断(3.25)
- 菜鸟学android——WebView点击链接发生错误:Calling startActivity() from outside of an Activity context requires...
- (一)线性结构之ArrayList的实现
- 一个多线程的死锁和锁争用的例子
- 第四周作业-多线程编程