数据结构之HashTable与HashMap_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 数据结构之HashTable与HashMap

数据结构之HashTable与HashMap

 2014/3/27 19:04:35  追梦赤子心  程序员俱乐部  我要评论(0)
  • 摘要:昨晚电面过程中被问到HashTable与HashMap的区别以及分别适用于那些场合。当时回答对HashMap有一些了解,知道它继承了Map接口,Map存储有关联关系的键(key)/值(value)对,可以通过key来查找value,也可以通过value来查找key。关于HashTable,只记得在做连连看游戏的时候,用到过Table组件,对HashTable没有怎么用过。晚上回去查了HashTable与HashMap的区别,发现自己只是提到了一点点皮毛..
  • 标签:

昨晚电面过程中被问到HashTable与HashMap的区别以及分别适用于那些场合。当时回答对HashMap一些了解,知道它继承了Map接口,Map存储有关联关系的键(key/(value)对,可以通过key来查找value,也可以通过value来查找key。关于HashTable只记得在做连连看游戏的时候,用到过Table组件,对HashTable没有怎么用过。晚上回去查了HashTable与HashMap的区别,发现自己只是提到了一点点皮毛...

?

首先介绍一下HashTableHashMap

? HashTable实现一个哈希表,该哈希表将键映射到相应的值。任何非?null?对象都可以用作键或值

? HashMap是基于哈希表的Map?接口的实现。此实现提供所有可选的映射操作,并允许使用?null?值和?null?键。HashMap不保证映射的顺序,特别是它不保证该顺序恒久不变。。

?

现对HashMapHashTable的区别总结如下:

1.HashTableHashMap继承的接口不同。

?? HashTable继承的是Dictionary接口,而HashMap继承的是Map接口。

?

2.写程序的时候,HashMap中存储的key值和value值可以为null,而HashTable中存储的key值和value值都不可以是null

?? HashMap中,值为nullkey只能有一个;而值为nullvalue可以有多个,每一个value对应于不同的key

? ?在使用HashMapget(Object?key)方法时要注意,当返回值为null时,代表着两种含义,一种是HashMap中没有相应的key键,另一种是该键对应的值是null。所以我们要判断HashMap中是否存在某个键的时候,不能使用get(Object?key)方法来进行判断,而应该用containsKey(Object?key)方法来判断。

?

3.HashTable中有contains(Object?value)containsKey(Object?key),containsValue(Object?value)方法;而在HashMap中去除了contains(Object?value)方法,只有containsKey(Object?key),containsValue

(Object?value)方法方法,因为contains(Object?value)方法容易让人产生误解

?

class="p0">4.HashMapHashTable最大的不同是:

???HashMap的方法不是synchronized同步)的,而HashTable的方法是synchronized的。

? ?即多个线程访问HashTable时,不需要再为它的方法提供专门的操作来实现同步,它自身就拥有同步机制;而HashMap则需要为它的方法实现外同步。HashMap的同步问题可通过Collections的一个静态方法得到解决,使用?Collections.synchronizedMap(Map?m)?方法来“包装”该映射。

上一篇: 通过javaMail发送邮件,可设置多个收件人,多个附件 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名