java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java set常用方法

Java Set 中的常用方法示例总结

作者:Geoking.

Set是Java集合框架(Collection Framework)中最常用的接口之一,具有元素唯一、不允许重复 的特性,这篇文章将全面总结Java Set的常用方法并通过示例进行讲解,主要用于日常查询使用,感兴趣的朋友跟随小编一起看看吧

一、前言

Set 是 Java 集合框架(Collection Framework)中最常用的接口之一,具有 元素唯一、不允许重复 的特性。

无论你用 HashSetLinkedHashSetTreeSet,它们都实现了 Set 接口,因此拥有大量共同的方法。

这篇文章将全面总结 Java Set 的常用方法并通过示例进行讲解,主要用于日常查询使用。

二、Set 的核心特点回顾

三、Set 常用方法总览

以下方法来自 Set 的父接口 Collection,因此所有 Set 实现类都具备这些操作:

方法返回值说明
add(E e)boolean添加元素
remove(Object o)boolean删除指定元素
contains(Object o)boolean判断是否存在
size()int获取元素数量
isEmpty()boolean判断是否为空
clear()void清空集合
iterator()Iterator返回迭代器
addAll(Collection c)boolean合并集合
removeAll(Collection c)boolean删除多个元素
retainAll(Collection c)boolean求交集
toArray()Object[]转换为数组
forEach()void遍历(Java 8+)

接下来我们逐一讲解。

四、Set 常用方法详解

1.add(E e)—— 添加元素

Set<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
set.add("Java"); // 重复,添加失败
System.out.println(set);

返回值:

2.remove(Object o)—— 删除元素

set.remove("Java");
System.out.println(set);

3.contains(Object o)—— 判断元素是否存在

boolean exists = set.contains("Java");
System.out.println(exists);

最常用于过滤、查重等场景。

4.size()—— 获取元素数量

int count = set.size();
System.out.println(count);

5.isEmpty()—— 判断集合是否为空

if (set.isEmpty()) {
    System.out.println("空集合");
}

6.clear()—— 清空集合

set.clear();

7.iterator()—— 迭代器遍历

Iterator<String> it = set.iterator();
while (it.hasNext()) {
    System.out.println(it.next());
}

Set 无索引,因此迭代器非常重要。

8.forEach()(Java 8)

更简洁的遍历方式:

set.forEach(System.out::println);

9.addAll(Collection c)—— 合并集合

Set<Integer> a = new HashSet<>(List.of(1, 2));
Set<Integer> b = new HashSet<>(List.of(2, 3));
a.addAll(b);
System.out.println(a);

效果类似数学中的 并集

10.removeAll(Collection c)—— 删除多个元素

a.removeAll(List.of(2));
System.out.println(a);

效果类似数学中的 差集

11.retainAll(Collection c)—— 求交集

保留与目标集合相同的元素。

Set<Integer> a = new HashSet<>(List.of(1, 2, 3));
Set<Integer> b = new HashSet<>(List.of(2, 3, 4));
a.retainAll(b);
System.out.println(a); // [2, 3]

12.toArray()—— 转换为数组

Object[] arr = set.toArray();

如果你需要指定类型:

String[] arr = set.toArray(new String[0]);

五、Set 常用操作总结(常考)

1. 去重操作

Set<Integer> set = new HashSet<>(list);

2. 判断是否包含某元素

if (set.contains(x))

3. 交集、并集、差集

// 并集
a.addAll(b);
// 交集
a.retainAll(b);
// 差集
a.removeAll(b);

4. 遍历(推荐方式)

set.forEach(System.out::println);

六、Set 使用注意事项(易踩坑)

❗ 1. 添加自定义对象时必须重写 equals()hashCode()
否则 Set 无法正确判断重复。

❗ 2. 遍历过程中不能使用普通 for(因为无索引)
只能:

❗ 3. HashSet 不保证顺序
如果需要顺序:

LinkedHashSet
如果需要排序:

TreeSet

七、三大 Set 类的额外方法(补充)

  1. TreeSet 拥有 first()last() 方法
TreeSet<Integer> ts = new TreeSet<>();
ts.add(3);
ts.add(1);
ts.add(2);
System.out.println(ts.first()); // 1
System.out.println(ts.last());  // 3
  1. TreeSet 支持子集操作
ts.headSet(2); // 小于 2 的元素
ts.tailSet(2); // 大于等于 2 的元素
ts.subSet(1, 3); // [1,3)

参考资料

Java Set 接口 - Java教程

Java官方文档

到此这篇关于Java Set 中的常用方法示例总结的文章就介绍到这了,更多相关java set常用方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文