Тип коллекции в Java
У готовых коллекций параметр типа уже встроен в объявление интерфейса. В угловых скобках после имени указывают, какие типы элементов или пар ключ-значение допустимы.
Список хранит элементы одного типа. Запись
List<String> означает: индекс дает
строку, обход в цикле тоже работает
со строками:
void demo() {
List<String> tags = List.of("go", "api");
System.out.println(tags.get(0));
for (String tag : tags) {
System.out.println(tag.length());
}
}
Карта связывает ключи одного типа со значениями
другого. У Map два аргумента типа -
первый для ключей, второй для значений:
void demo() {
Map<String, Integer> scores = Map.of(
"ann", 90,
"bob", 85
);
System.out.println(scores.get("ann"));
for (Map.Entry<String, Integer> row : scores.entrySet()) {
System.out.println(row.getKey() + ":" + row.getValue());
}
}
Если перепутать аргументы, компилятор не примет
присваивание: ключи и значения жестко разделены
в сигнатуре. Один и тот же синтаксис угловых
скобок связывает и свой код с List<T>,
и типы из стандартной библиотеки.
Задайте переменную со списком чисел
10, 20, 30 с явным
типом List<Integer> и выведите последний
элемент по индексу.
Создайте карту: ключи - строки "ru"
и "en", значения - числа 1
и 2. Выведите значение по ключу
"en".