Java集合框架(三)-HashSet
大佬的理解-> Java集合值HashSet
1、HashSet特点
存放的元素是无序的(不保证添加元素的顺序) |
---|
元素唯一(不可以重复) |
可以存null,但是只能存放1个 |
虽然set集合不保证添加元素的顺序,但是集合中存放的元素顺序其实是固定的,根据元素的hash值确定的顺序 |
2、HashSet原理分析
HashSet底层,是借助HashMap实现的;
3、HashSet初始化
Set<String> strSet = new HashSet<>();
4、HashSet常用方法
方法 | 说明 |
---|---|
size() | 结合元素个数 |
contains(Object o) | 集合是否包含某个元素 |
4.1 size()
// 获取set集合元素个数方法:size()
4.2 contains(Object o)
// 判断set集合中是否包含某个元素方法:contains(元素)
4.3 list的其它常用方法,set中也有,不再介绍
5、HashSet遍历
5.1 迭代器遍历
Set<String> carSet = new HashSet<>();
carSet.add("Bmw325");
carSet.add("BenzC200");
carSet.add("AudiA4");
// 方式一:迭代器遍历
Iterator<String> iterator = carSet.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
5.2 增强for循环
// 方式二:增强for循环
for (String car : carSet) {
System.out.println(car);
}
运行结果:
BenzC200
AudiA4
Bmw325
6、HashSet集合是如何确定元素唯一的
6.1 HashSet添加一个元素的过程
-
调用对象的hashCode()方法获取对象的哈希值;
-
根据对象的哈希值计算对象的存储位置;
-
判断该位置是否有元素,如果没有元素则将元素存储到该位置;如果有元素则遍历该位置的所有元素,和新存入的元素比较哈希值是否相同,如果都不相同则将元素存储到该位置;如果有相同的,则调用equals()方法比较对象内容是否相等;
-
如果返回false则将元素存储到该位置,如果返回true则说明元素重复,不存储;
6.2 流程图
HashSet集合存储元素:要保证元素唯一性,需要重写hashCode()和equals()方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术