Назад к задачам
СБЕРПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
4
Отбор уникальных Person по сочетанию имени и отчества
Компании, где спрашивали:
Условие задачи
Необходимо реализовать функцию unique, получающую список объектов класса Person и возвращающую коллекцию, в которой присутствуют только уникальные записи. Уникальность определяется парой полей firstName (имя) и patronymicName (отчество); значения id и secondName при этом игнорируются.
Требования:
- Если в исходном списке несколько объектов с одинаковыми firstName и patronymicName, оставить лишь один произвольный экземпляр.
- Порядок элементов в результирующей коллекции не обязателен.
- Для проверки уникальности следует сравнивать только комбинацию firstName и patronymicName.
@Data
@AllArgsConstructor
public static class Person {
public Integer id;
public String firstName;
public String secondName;
public String patronymicName;
}
@Test
public void test() {
List<Person> person = new ArrayList<>();
person.add(new Person(1, "Ivan", "Vasya", "Petr"));
person.add(new Person(2, "Ivan", "Vasya", "Petr"));
person.add(new Person(3, "Ivan", "Vasya", "Petr"));
person.add(new Person(4, "Ivan", "Gupta", "Ivan"));
person.add(new Person(5, "Petr", "Rama", "Igor"));
Collection<Person> uniquePerson = unique(person);
assert uniquePerson.size() == 3;
}
public static Collection<Person> unique(List<Person> persons){
}