假设Streams和Collections、Lambdas都可以使用? 我尝试使用 for 循环,但它没有解决我的问题。
// Set<Set<String>> to Set<String>
for(Set<String> s : set) {
result.addAll(s);
set.add(result);
}
set 是
Set<Set<String>>
类型,结果是 Set<String>
类型。
这是使用 Stream API 的选项:
Set<String> result = sets.stream()
.flatMap(Collection::stream)
.collect(Collectors.toSet());
修复当前实现所需要做的就是删除
set.add(result)
行。
// Set<Set<String>> to Set<String>
for(Set<String> s : set) {
result.addAll(s);
// set.add(result);
}
这是将迭代的每个步骤的所有结果添加回集合中,添加不必要的元素并无休止地增加其大小。