假设我有一个非常简单的类Person,它包含一个名称和地址:
public class Person {
String name;
String address;
public Person(final String name,
final String address) {
this.name = name;
this.address = address;
}
public String getName() {
return name;
}
public void setName(final String newName) {
this.name = newName;
}
public String address() {
return address;
}
public void setAddress(final String newAddress) {
this.address = newAddress;
}
}
我现在有一个包含所有已知Person对象的Set,我想仅根据其名称更新其中一个人的地址.为此,我有以下内容:
persons.stream()
.filter(person -> personToUpdate.getName().equalsIgnoreCase(person.getName()))
.forEach(person -> {
person.setAddress(personToUpdate.getAddress());
});
但是,我的问题是当我有一个新人完全没有在Set中.如何检查“设置”以查看此人是否存在,如果存在,请更新其地址.但如果它们不存在,请将它们添加到列表中.我知道这很简单,但无论出于何种原因,我都无法想到如何实现这一目标.我不想在创建所有名称列表的路上,比较新名称,如果它们在列表等等等等.我宁愿尽可能简洁.
编辑:名字将是独一无二的!