Java学习之HashSet
来源:互联网 发布:淘宝南风小铺抄袭 编辑:程序博客网 时间:2024/06/05 08:48
一、元素顺序:
元素唯一,但是无序(它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变)
二、底层依赖
e.hash == hash && ((k = e.key) == key || key.equals(k))左边:e.hash == hash -- 和对象的hashCode()方法相关
将你即将添加进去的元素的哈希吗值和哈希表中已经存在的元素的哈希吗值进行比较,
如果相等:进行后面的判断
如果不等:将元素直接添加到哈希表中,说明这个元素在表中不存在
右边:((k = e.key) == key || key.equals(k)
左边:(k = e.key) == key
在这里比较对象的地址值
右边:key.equals(k)
默认情况下,比较的是地址值,在这里比较的是字符串的内容
保证元素唯一性的依赖的方法:hashCode(),equals()
执行流程:
首先判断元素的哈希吗值是否相同,如果元素的哈希吗值不同的话,直接添加,
如果元素的哈希吗值相同的话,判断元素的地址值或者元素的内容,
只要这两样有一个相同就说明是用同一个元素,不添加到集合
0 0
- Java学习之HashSet
- java学习之Set集合、HashSet
- JDK1.8源码学习之HashSet.java
- Java学习笔记-HashSet
- 【java学习笔记】HashSet
- java例题学习:HashSet
- java HashSet学习
- java HashSet / TreeSet 学习
- 【Java】Set之HashSet
- Java之HashSet
- Java集合之HashSet
- java集合之HashSet
- Java源码之HashSet
- Java基础之HashSet
- Java集合之HashSet
- Java集合之HashSet
- Java集合之HashSet
- Thinking in Java之Set接口、HashSet源码学习
- 后缀数组总结
- logstash使用小结
- LEADTOOLS Recognition Imaging Developer Toolkit
- java处理日期时间
- Spring mvc中的@RequestHeader
- Java学习之HashSet
- input子系统一 主要数据结构
- POI操作Excel的简单操作
- Linux 程序包
- 《APUE》读书笔记-第二十章数据库函数库
- Android studio 版本号升级
- Windows下实现端口映射
- JavaEE中EL表达式
- java中的注解