HashSet 基本使用
【摘要】 HashSet 基本使用
1. HashSet 简介
- HashSet实现了Set接口
- HashSet实际上是HashMap,看下源码
public HashSet() {
map = new HashMap<>();
}
- 可以存放
null
值,但是只能有一个null
- HashSet不保证元素是有序的,取决于
hash
后,再确定索引的结果。(即:不保证存放元素的顺序和取出顺序一致) - 不能有重复元素或对象
- 举例:
// 创建 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]
- 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)