Java 中的 Set 集合

以下是对 Java 中的 Set 接口中一些常用方法的介绍,并给出了相应的代码示例:

添加元素

boolean add(E e):向集合中添加指定的元素。如果该元素尚未存在于集合中,则添加它,并返回 true。如果集合已包含该元素,则添加操作不会改变集合,并返回 false。

java 复制代码
Set<String> set = new HashSet<>();  
boolean added = set.add("apple"); // 添加元素"apple"  
System.out.println("Element added: " + added); // 输出: Element added: true

boolean addAll(Collection<? extends E> c):将指定集合中的所有元素添加到此集合中。成功则返回 true。

java 复制代码
Set<String> set1 = new HashSet<>();  
set1.add("apple");  
  
Set<String> set2 = new HashSet<>();  
set2.add("banana");  
set2.add("cherry");  
  
boolean allAdded = set1.addAll(set2); // 将set2的所有元素添加到set1中  
System.out.println("All elements added: " + allAdded); // 输出: All elements added: true  
System.out.println(set1); // 输出: [apple, banana, cherry]

移除元素

boolean remove(Object o):从此集合中移除指定元素(如果存在)。如果集合包含指定的元素,则移除它,并返回 true。否则,返回 false。

java 复制代码
Set<String> set = new HashSet<>();  
set.add("apple");  
set.add("banana");  
  
boolean removed = set.remove("apple"); // 移除元素"apple"  
System.out.println("Element removed: " + removed); // 输出: Element removed: true  
System.out.println(set); // 输出: [banana]

boolean removeAll(Collection<?> c):移除此集合中那些也包含在指定集合中的所有元素。成功则返回 true。

java 复制代码
Set<String> set = new HashSet<>();  
set.add("apple");  
set.add("banana");  
set.add("cherry");  
  
Set<String> toRemove = new HashSet<>();  
toRemove.add("banana");  
toRemove.add("cherry");  
  
boolean allRemoved = set.removeAll(toRemove); // 移除set中所有在toRemove中的元素  
System.out.println("All elements removed: " + allRemoved); // 输出: All elements removed: true  
System.out.println(set); // 输出: [apple]

void clear():移除此集合中的所有元素(可选操作)。此调用返回后,集合将为空。

java 复制代码
Set<String> set = new HashSet<>();  
set.add("apple");  
set.add("banana");  
  
set.clear(); // 移除集合中所有元素  
System.out.println(set.isEmpty()); // 输出: true  
System.out.println(set); // 输出: []

是否包含某元素

boolean contains(Object o):如果此集合包含指定的元素,则返回 true。

java 复制代码
Set<String> set = new HashSet<>();  
set.add("apple");  
  
boolean containsApple = set.contains("apple"); // 检查集合是否包含元素"apple"  
System.out.println("Contains apple: " + containsApple); // 输出: Contains apple: true

boolean containsAll(Collection<?> c):如果此集合包含指定集合中的所有元素,则返回 true。

java 复制代码
Set<String> set = new HashSet<>();  
set.add("apple");  
set.add("banana");  
  
Set<String> toCheck = new HashSet<>();  
toCheck.add("apple");  
  
boolean containsAll = set.containsAll(toCheck); // 检查集合是否包含toCheck中的所有元素  
System.out.println("Contains all elements: " + containsAll); // 输出: Contains all elements:

交集

使用 retainAll() 方法:

java 复制代码
import java.util.HashSet;  
import java.util.Set;  
  
public class SetIntersection {  
    public static void main(String[] args) {  
        Set<String> set1 = new HashSet<>();  
        set1.add("apple");  
        set1.add("banana");  
        set1.add("cherry");  
  
        Set<String> set2 = new HashSet<>();  
        set2.add("banana");  
        set2.add("cherry");  
        set2.add("date");  
  
        //求set1与set2的交集,交集保存在set1中
		//retainAll:保留两者都有的
        set1.retainAll(set2);  
  
        System.out.println("Intersection: " + set1);  
        // 输出: Intersection: [banana, cherry]  
    }  
}

并集

使用 addAll()方法

补集

使用 removeAll() 方法

相关推荐
华仔啊1 分钟前
SpringBoot 2.x 和 3.x 的核心区别,这些变化你必须知道
java·spring boot·后端
laocooon5238578867 分钟前
大数的阶乘 C语言
java·数据结构·算法
不见长安在19 分钟前
分布式ID
java·分布式·分布式id
熊小猿22 分钟前
Redis 缓存怎么更新?—— 四种模型与一次“迟到的删除”
java·后端·spring
TDengine (老段)32 分钟前
从细胞工厂到智能制造:Extracellular 用 TDengine 打通数据生命线
java·大数据·数据库·科技·制造·时序数据库·tdengine
Boop_wu33 分钟前
[Java EE] 多线程 -- 初阶(1)
java·jvm·算法
西岭千秋雪_3 小时前
Zookeeper实现分布式锁
java·分布式·后端·zookeeper·wpf
MarcoPage4 小时前
Python 字典推导式入门:一行构建键值对映射
java·linux·python
脸大是真的好~4 小时前
黑马JAVAWeb-11 请求参数为数组-XML自动封装-XML手动封装-增删改查-全局异常处理-单独异常分别处理
java
Hello.Reader6 小时前
Data Sink定义、参数与可落地示例
java·前端·网络