Список records в Java
Список объектов вы уже собирали из обычных классов -
ArrayList и List.of работают так же
for record. Каждый элемент - отдельная запись
с теми же компонентами:
record Post(String title, int views) {}
Соберем несколько записей в список и выведем его размер:
import java.util.List;
List<Post> feed = List.of(
new Post("News", 12),
new Post("Guide", 40)
);
System.out.println(feed.size());
Элементы списка можно фильтровать и сортировать, обращаясь к компонентам через методы доступа в лямбде или цикле:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Post> feed = new ArrayList<>(List.of(
new Post("News", 120),
new Post("Tips", 5),
new Post("Guide", 80)
));
long hot = feed.stream()
.filter(p -> p.views() >= 50)
.count();
System.out.println(hot);
}
}
При обходе удобно выводить каждую запись целиком -
автоматический toString сработает для каждого
элемента:
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Post> feed = List.of(
new Post("News", 12),
new Post("Draft", 0)
);
for (Post post : feed) {
System.out.println(post);
}
}
}
Сделайте record Employee с компонентами
name и dept.
Дан список:
List<Employee> team = List.of(
new Employee("Ann", "IT"),
new Employee("Bob", "HR")
);
Выведите на экран количество элементов
в списке team.
Сделайте record Employee с компонентами
name и salary.
Дан список из трёх сотрудников с разным окладом.
Посчитайте, сколько из них имеют
salary() >= 90000, и выведите число.