gpt4 book ai didi

java - 有条件地组合两组

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:02:02 24 4
gpt4 key购买 nike

我有一个 Person 对象,它有一个 name 属性和一些其他属性。我有两个带有 Person 对象的 HashSet。请注意,name 不是唯一属性,这意味着两个同名的 Person 可以有不同的高度,因此使用 HashSet 不能保证两个同名的 Person 不在同一个集合中。

我需要将一组添加到另一组,这样结果中就没有同名的人了。所以像这样:

public void combine(HashSet<Person> set1, HashSet<Person> set2){
for (String item2 : set2) {
boolean exists = false;
for (String item1 : set1) {
if(item2.name.equals(item1.name)){
exists = true;
}
}
if(!exists){
set1.add(item2);
}
}
}

在 java8 中有更简洁的方法吗?

最佳答案

set1.addAll(set2.stream().filter(e -> set1.stream()
.noneMatch(p -> p.getName().equals(e.getName())))
.collect(Collectors.toSet()));

关于java - 有条件地组合两组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47727386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com