HashSet 基本使用

举报
兮动人 发表于 2025/03/06 22:48:05 2025/03/06
28 0 0
【摘要】 HashSet 基本使用

1. HashSet 简介

  1. HashSet实现了Set接口
  2. HashSet实际上是HashMap,看下源码
public HashSet() {
    map = new HashMap<>();
}
  1. 可以存放null值,但是只能有一个null
  2. HashSet不保证元素是有序的,取决于hash后,再确定索引的结果。(即:不保证存放元素的顺序和取出顺序一致)
  3. 不能有重复元素或对象
  • 举例:
// 创建 HashSet 对象
Set<String> set = new HashSet<>();

// 添加元素
set.add("Apple");
set.add("Banana");
set.add("Orange");
set.add("Apple"); // 尝试添加重复元素,但不会成功

// 输出 HashSet
System.out.println(set); // 输出可能为 [Apple, Banana, Orange],具体顺序不定

// 检查集合中是否包含某个元素
if (set.contains("Banana")) {
    System.out.println("Set contains Banana");
}

// 删除元素
set.remove("Banana");

// 输出更新后的 HashSet
System.out.println(set); // 输出可能为 [Apple, Orange]

image.png

  • HashMap 与 HashSet 的区别:

1、存储类型:HashMap 存储键值对 (key-value pairs),而 HashSet 只存储单个值。
2、接口实现:HashMap 实现了 Map 接口,而 HashSet 实现了 Set 接口。
3、重复性:HashMap 中的键不允许重复,而值可以重复;HashSet 中的所有元素都不允许重复。
4、null 支持:HashMap 允许一个 null 键和多个 null 值;HashSet 允许一个 null 元素。
5、访问方式:在 HashMap 中可以通过键来获取值,而在 HashSet 中只能遍历整个集合来查找元素。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。