HashSet 基本使用

143 阅读1分钟

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]

在这里插入图片描述

  • 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 中只能遍历整个集合来查找元素。