Допустим, у меня есть очень простой класс 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;
}
}
Теперь у меня есть Set, содержащий все известные объекты Person, и я хочу обновить адресодного из лиц на основании только их имени.Для этого у меня есть следующее:
persons.stream()
.filter(person -> personToUpdate.getName().equalsIgnoreCase(person.getName()))
.forEach(person -> {
person.setAddress(personToUpdate.getAddress());
});
Однако моя проблема в том, что у меня вообще есть новый человек, которого нет в Сете.Как проверить комплект, чтобы узнать, существует ли этот человек, и если да, обновить его адрес.Но если они не существуют, добавьте их в список.Я знаю, что это просто, но по какой-то причине я просто не могу думать, как добиться этого прямо сейчас.Я не хочу идти по пути создания списка всех имен, сравнения нового имени, если они есть в списке и т. Д. И т. Д. И т. Д. Я бы предпочел сделать его максимально сжатым.
РЕДАКТИРОВАТЬ: имена будут уникальными!