Вернуться к содержанию курса
Работа с коллекциями в Java
Материалы для самоподготовки
Основные материалы - Java Collections
- Видео: Learn - Java Collections
- Urvanov: Коллекции
- Habr: Обзор коллекции ArrayList
- Habr: Обзор коллекции LinkedList
- Habr: Обзор коллекции HashMap
- Habr: Java собеседование. Коллекции
- Habr: Общий справочник по Java Collections Framework
Основные материалы - Java Generics
- Urvanov: Обобщения
Основные материалы - Java Stream Api
- Urvanov: Коллекции - Stream
- Java 8 Stream Tutorial
Дополнительные материалы - Java Collections
- Jenkov: Java Collections Tutorial
Дополнительные материалы - Java Generics
- Habr: Пришел, увидел, обобщил
Дополнительные материалы - Java Stream Api
- Habr: Шпаргалка Java программиста. Java Stream API
- Видео: Stream Api (Часть 1)
- Видео: Stream Api (Часть 2)
Практическая работа
Репозиторий с шаблоном практической работы
Вопросы для самоконтроля
Java - Collections
- Что такое коллекция? Для чего она необходима?
- Назовите основную иерархию коллекций (интерфейсы и их основные реализации).
- Расскажите кратко о предназначении каждого вида коллекции. Чем она удобна? Каковые особенности ее работы?
- В чем преимущество коллекций на фоне массивов?
- Как создать коллекцию из массива?
- Как внутри устроен
ArrayList
?
- Как внутри устроен
LinkedList
?
- Чем отличается
ArrayList
от LinkedList
? В каких случаях лучше использовать первый, а в каких второй?
- Как происходит удаление элементов из
ArrayList
? Как меняется в этом случае размер ArrayList
?
- Как происходит удаление элементов из
LinkedList
? Что происходит с элементами в LinkedList
при удалении одного из них?
- Как сравнить элементы двух коллекий? Как узнать, что первая коллекция содержит все те же элементы, что и вторая?
- Дайте определение понятиям
Iterator
и Iterable
.
- Для чего нужно коллекция
TreeSet
? Что такое Comparator
и Comparable
, как они связаны с этой коллекцией?
- Устройство
HashMap
? Как зависит HashMap
от реализации метода hashCode
? Что такое корзины (бакеты) в HashMap
?
- Как получить все ключи
HashMap
?
- Как получить все значения
HashMap
?
- Расскажите по шагам, что происходит при вставке элементов в
HashMap
? А если будет вставка по одинаковому ключу? Если по разным? Что лучше использовать в качетве ключа?
- В чем разница между
HashMap
, SortedMap
, TreeMap
?
- Какие коллекции реализуют интерфейс
Set
? В чем особенность данных коллекций? Как они работают? Как зависят коллекции типа Set
от реализации метода equals
?
- В каких случаях стоит использовать
Queue
? Чем Queue
отличается от Deque
?
Java - Generics
- Что такое ковариантность, контрвариантность и инвариантность? Приведите примеры из языка Java
- Что отличает
List<String> parsedWords = ...
от просто List parsedWords = ...
?
- При объявлении типов переменных, что предпочтительнее
List<Student> student = ...
или ArrayList<Student> student = ...
?
- Что такое дженерики? Для чего они нужны?
- Что означает
List<?>
? Стоит ли использовать эту запись?
Java - Stream Api
- Что такое Stream? Как создать Stream? Что он позволяет? В чем разница между Collection и Stream?
- Какие существуют способы создания стрима?
- Что такое Optional?
- Для чего нужен метод collect() в стримах? Какие стандартные реализации коллекторов существуют?
- Для чего в стримах применяются методы forEach() и forEachOrdered()?
- Для чего в стримах предназначены методы map() и mapToInt(), mapToDouble(), mapToLong()?
- Какова цель метода filter() в стримах?
- Для чего в стримах предназначен метод limit()?
- Для чего в стримах предназначен метод sorted()?
- В чем разница между терминальными и конвейерными операциями?
- Что будет выведено в консоль?
String collect = IntStream.range(1, 4)
.mapToObj(i -> "a" + i)
.map(String::toUpperCase)
.sorted(Comparator.reverseOrder())
.collect(Collectors.joining("-"));
System.out.println(collect);