码迷,mamicode.com
首页 > 编程语言 > 详细

初识java集合——散列表(HashTable)

时间:2016-10-22 14:23:53      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:set   code   散列表   equal   没有   数组   查看   自定义类   应该   

【散列表】为每个对象计算一个整数,称为散列码(是由对象的实例域产生的一个整数)更确切的说
* 不同实例域的对象产生不同的散列码
*
* 如果自定义类,就要负责实现这个类的hashcode,注意:自己实现的hashcode方法应该与equals方法兼容
* 即如果a.equals(b) 为true a和b必须具有相同的散列码
*
* 在java中,【散列表】用链表数组实现。每个列表被称为桶。想要查找表中对象,先计算散列码,然后与桶的总数取余
* 所的余数就是桶的索引。当桶中没有其他元素时,很幸运可以放入,而桶里面如果已经满了,先将新对象与桶内进行比较
* 查看是否存在。
*
* 标准类库中的桶数是2的幂次,默认为16;如果散列表太满就需要再散列(rehashed)会创建出一个桶数更多的表,并将所有元素
* 插入到这个新表中,然后丢弃原来的表。
* 装填因子就是决定了何时对散列表进行再散列。一般默认0.75
*
*
* 散列表可以实现几个重要的数据结构,其最简单的就是【Set】
*
* set的add会现在集中查找要添加的对象,如果不存在,就将对象添加进去
*

初识java集合——散列表(HashTable)

标签:set   code   散列表   equal   没有   数组   查看   自定义类   应该   

原文地址:http://www.cnblogs.com/westlin/p/5987222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!