首页 > 代码库 > 初识java集合——散列表(HashTable)
初识java集合——散列表(HashTable)
【散列表】为每个对象计算一个整数,称为散列码(是由对象的实例域产生的一个整数)更确切的说
* 不同实例域的对象产生不同的散列码
*
* 如果自定义类,就要负责实现这个类的hashcode,注意:自己实现的hashcode方法应该与equals方法兼容
* 即如果a.equals(b) 为true a和b必须具有相同的散列码
*
* 在java中,【散列表】用链表数组实现。每个列表被称为桶。想要查找表中对象,先计算散列码,然后与桶的总数取余
* 所的余数就是桶的索引。当桶中没有其他元素时,很幸运可以放入,而桶里面如果已经满了,先将新对象与桶内进行比较
* 查看是否存在。
*
* 标准类库中的桶数是2的幂次,默认为16;如果散列表太满就需要再散列(rehashed)会创建出一个桶数更多的表,并将所有元素
* 插入到这个新表中,然后丢弃原来的表。
* 装填因子就是决定了何时对散列表进行再散列。一般默认0.75
*
*
* 散列表可以实现几个重要的数据结构,其最简单的就是【Set】
*
* set的add会现在集中查找要添加的对象,如果不存在,就将对象添加进去
*
初识java集合——散列表(HashTable)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。