Вы можете построить карту с ключом ssn
.Здесь Collectors.toMap
выдаст IllegalStateException
, если встретит дубликаты
students
.stream()
.collect(Collectors.toMap(Student::getSsn, Function.identity()));
Или вы можете обработать это в функции слияния
students
.stream()
.collect(Collectors.toMap(Student::getSsn, Function.identity(), (student1, student2) -> {
System.out.println(student1 + " and " + student2 + " had duplicate SSNs");
return student1; //Just for demonstration I'm returning the first one.
}));
Вышеуказанное поможет вам определить дублирует, но вы не упомянули, что делать после этого.
РЕДАКТИРОВАТЬ (на основе обновления к вопросу):
.. но янеобходимо убедиться, что значения lName тоже уникальны
Вы можете сделать это дважды - один раз для SSN и один раз для фамилии.
Или вы можете переопределить equals
и hashCode
как показано в другом ответе.