Java基础教程8:哈希表

哈希表是一种重要的存储方式和快速检索方法。来自于Java.util.Hashtable。对于数组来说,存储的位置和对象本身的内容没有必然联系,所以查找起来只能顺序查找。如果数组中元素太多了,就没办法应付了。
建立一个哈希表需要选取对象的一个关键属性,并依据提前选定的对应关系,是对象和唯一的存储位置向对应。
对于哈希表来说,容量是不固定的,随着数据的加入,其容量也可以自动增长。上述的关键属性被称为关键字,每个对象的关键字必须唯一,即和其他的对象都不相同。选定的对应关系称为哈希方法,而对应到的整形数据则被称为哈希码。

常见的集合类的继承关系如下
Collection<–List<–Vector
Collection<–List<–ArrayList
Collection<–List<–LinkedList
Collection<–Set<–HashSet
Collection<–Set<–HashSet<–LinkedHashSet
Collection<–Set<–SortedSet<–TreeSet
Map<–SortedMap<–TreeMap
Map<–HashMap

(1)hashtable
java.lang.Object
java.util.Dictionary[K,V]
java.util.Hashtable[K,V] 实现了map接口

(2)hashmap
java.lang.Object
–java.util.AbstractMap[K,V]
—-java.util.HashMap[K,V] 实现了map接口

(3)hashset
java.lang.Object
–java.util.AbstractCollection[E]
—-java.util.AbstractSet[E]
——java.util.HashSet[E] 实现set接口

hashmap和hashtable都实现了map接口。二者极为类似。只有如下区别:
hashmap是非synchronized。hashtable是synchronized的。这意味着后者是县城安全的,多个线程可以同时访问hashtable。而多线程访问hashmap需要手动同步。另外,hashmap可以接收null。hashset实现了set接口。意味着不能添加重复的元素。
当hashmap中被插入key为null的entry时,会自动调用putfornullkey方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值