Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpRcMp 87 of 147 menu
◀ ▶

Карта records в Java

Карта Map связывает ключ и значение - как в уроках про карты в основном учебнике, только значением часто служит record с несколькими компонентами. Литерал Map.of связывает ключ с готовым объектом:

record Post(String title, int views) {}

Положим записи в карту по ключу и выведем заголовок первой:

import java.util.Map; Map<Integer, Post> byId = Map.of( 1, new Post("News", 12), 2, new Post("Guide", 40) ); System.out.println(byId.get(1).title());

Метод get возвращает ссылку или null, если ключа нет. Компоненты записи читают после проверки или через цепочку, если ключ известен:

import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Post> env = Map.of( "prod", new Post("Release", 500) ); Post post = env.get("prod"); if (post != null) { System.out.println(post.views()); } } }

Карту можно обойти в цикле: на каждой паре key и value значение уже имеет тип record и печатается или сравнивается как отдельный объект:

import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Post> pages = Map.of( "home", new Post("Home", 100), "blog", new Post("Blog", 50) ); for (Map.Entry<String, Post> row : pages.entrySet()) { System.out.println(row.getKey() + " " + row.getValue().views()); } } }

Сделайте record Employee с компонентами name и dept. Дана карта:

Map<String, Employee> staff = Map.of( "e1", new Employee("Ann", "IT"), "e2", new Employee("Bob", "HR") );

Выведите на экран отдел сотрудника с ключом "e2" из карты staff.

Сделайте record Employee с компонентами name и salary. Соберите карту из двух ключей "jun" и "sen" с разным окладом. Выведите на экран salary() для записи "jun".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить