您的位置:首页 >创建不可变集合:如何从现有集合添加元素
发布于2025-10-17 阅读(0)
扫一扫,手机访问

在Java中,不可变集合一旦创建就不能被修改。如果你需要基于现有的不可变集合创建一个新的、包含更多元素的集合,直接添加元素是不允许的。 幸运的是,Java 8引入的Stream API 提供了一种优雅的解决方案。
让我们考虑以下场景:你有一个不可变集合 Set<String> s = Set.of("a", "b", "c"),你希望创建一个新的不可变集合 t,它包含 s 中的所有元素,以及额外的一个元素 "d"。
以下是如何使用Stream API实现此目的:
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.function.Function;
public class ImmutableSetExample {
public static void main(String[] args) {
Set<String> s = Set.of("a", "b", "c");
// 方法一:使用 Set.of() 创建一个包含单个元素的 Set,然后合并
Set<String> t1 = Stream.of(s, Set.of("d"))
.flatMap(Set::stream)
.collect(Collectors.toUnmodifiableSet());
System.out.println("方法一: " + t1); // 输出: [d, c, b, a] (顺序可能不同)
// 方法二:直接将 Stream<String> 合并
Set<String> t2 = Stream.of(s.stream(), Stream.of("d"))
.flatMap(Function.identity())
.collect(Collectors.toUnmodifiableSet());
System.out.println("方法二: " + t2); // 输出: [d, c, b, a] (顺序可能不同)
}
}代码解释:
注意事项:
总结:
通过使用Stream API的flatMap操作和Collectors.toUnmodifiableSet()收集器,我们可以方便地从现有的不可变集合创建一个新的包含更多元素的不可变集合。 这种方法避免了直接修改原始集合,从而保持了其不可变性,并且避免了混合类型的集合。
下一篇:ES网校系统如何创建试卷
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8