#275 Фильтрация и сортировка персон и детей
Дан класс:
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
var personList = init();
printList(personList);
}
private static void printList(List list) {
System.out.println(list.stream()
.map(Object::toString)
.collect(Collectors.joining("\n")));
}
private static List<Person> init() {
return List.of(
new Main.Person("Алексей", List.of(
new Main.Child("Альбина", 3),
new Child("Арсений", 8),
new Child("Александр", 15))),
new Main.Person("Григорий", List.of()),
new Main.Person("Дмитрий", List.of(
new Main.Child("Дарья", 1),
new Child("Даниил", 5))),
new Main.Person("Борис", List.of(
new Main.Child("Богдан", 9))),
new Main.Person("Виктория", List.of(
new Main.Child("Владимир", 4),
new Child("Варвара", 7),
new Child("Валерия", 12))),
new Main.Person("Елена", List.of(
new Main.Child("Евгений", 11))));
}
public static class Child {
private String name;
private Integer age;
Child(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
@Override
public String toString() {
return name + " - " + age;
}
}
public static class Person {
private String name;
private List<Child> children;
Person(String name, List<Child> children) {
this.name = name;
this.children = children;
}
public String getName() {
return name;
}
public List<Child> getChildren() {
return children;
}
@Override
public String toString() {
return name + ": " +
children.stream()
.map(Object::toString)
.collect(Collectors.joining(", "));
}
}
}
Необходимо выполнить несколько операций над списком List<Person>:
- удалить персон, у которых меньше двух детей;
- отсортировать персон по возрасту самого младшего ребенка;
-
получить общий список детей
List<Child>; - отсортировать детей по имени и возрасту.
Разбор вопроса
Войди, чтобы начать диалог
Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти
Доступно с Premium
Это лишь одно из решений, доступных с Premium. А ещё:
- 250+ продвинутых лекций
- 1300+ практических заданий
- 500+ решений задач с реальных собеседований
- Именные сертификаты Java Hub
- Расширенный доступ к AI-ментору