hash code
来源:互联网 发布:ubuntu qemu kvm 编辑:程序博客网 时间:2024/06/05 10:50
摘自java核心技术卷一13.2.3
有一种数据结构,可以快速地查找所需要的对象,这就是散列表(hash table)。散列表中存储对象的散列码(hash code),具有不同数据域的对象将产生不同的散列码。
散列表通过链表数组实现,每个链表被称为桶。对象的散列码与桶的总数取余所得结果就是保存这个元素的桶的索引。java集合类库提供了一个HashSet类,主要特点是不能存放重复的元素,采用散列的存储方式。集合中添加元素,需查看集合中是否已经存在相同的元素,通过元素散列码与桶数取余可以得到要保存这个元素的桶的位置,查看桶中若无元素直接存入,桶中若有元素再使用equals()方法比较,而不必比较集合中的所有元素,实现快速查找所需要的对象。
由于hashCode方法定义在Object类中,因此每个对象都有一个默认的散列码,其值为对象的存储地址,hashCode方法可以重写。如果重新定义equlas方法,就必须重新定义hashCode方法,以便用户可以将对象插入到散列表中。例如学生类中有学号、姓名两个属性,若重新定义equals比较的是学号和姓名,那么hashCode的方法中就要散列学号和姓名。
0 0
- hash code
- hash code
- Hash code
- hash code
- hash code
- Hash(code and explaination)
- Hash Code Hacker
- hash code 与equals 区别
- Kwasek6 polymorphic code, modified Ruby Hash
- Equals and Hash Code (之二)
- Java HashMap 分析之二:Hash code
- Java HashMap 分析之二:Hash code
- Java HashMap 分析之二:Hash code
- UVA 11557 - Code Theft (KMP + HASH)
- Java HashMap 分析之二:Hash code
- Learning to Hash Paper, Code and Dataset
- String 类的hash code 研究
- hash code、equals和“==”三者的关系
- win7 命令行开启WiFi
- 安装openrave 0.9的各种依赖包
- JAVA实现求GPS两点之间的距离
- 三种方法交换变量值
- 【半年总结】--你若盛开,清风自来
- hash code
- python scipy和scikit-learn包的安装
- 题解——Leetcode 419. Battleships in a Board 难度:Medium
- 【STM32】新手折腾笔记--00:写在前面
- Maven项目不明原因报错
- 杭电 hdu 1045. Fire Net
- form在提交时被取消:因为form没有被连接
- bzoj 1022: [SHOI2008]小约翰的游戏John 博弈论
- 写给三公主和自己的第一个博客