Collection Framework Flashcards

1
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое иммутабельные коллекции?

A

List.of(“a”, “b”, “c”);

Collections.unmodifiableList(mutableList);

И так-же для остальных

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Чем отличаются LinkedList и ArrayList?

A

ArrayList - упорядоченный массив, с индексами. LinkedList - двусвязный список.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какова сложность вставки в LinkedList и ArrayList?

A

ArrayList - упорядоченный массив, с индексами

LinkedList - двусвязный список

Вставка лучше в LinkedList. В другом ответе сложность у обоих линейная т.к.
В арейнадо сместить в памяти все эллементы после, а в линкед нужно найти нужный после которого вставить

поиск LinkedList медленнее, из-за распределенности в памяти

ArrayList располагается в одном месте в памяти, ускаряется доступ еще за счет кеша

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Какова сложность поиска в LinkedList и ArrayList?

A

Поиск в LinkedList медленнее из-за распределенности в памяти. ArrayList располагается в одном месте в памяти.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какова внутренняя структура ArrayList?

A

Динамический массив.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Какова внутренняя структура LinkedList?

A

Двусвязный список.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Какова сложность доступа по индексу в ArrayList и LinkedList?

A

ArrayList: O(1), LinkedList: O(n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Какова сложность вставки в начало для ArrayList и LinkedList?

A

ArrayList: O(n), LinkedList: O(1).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Какова сложность вставки в конец для ArrayList и LinkedList?

A

ArrayList: O(1) (амортизированно), LinkedList: O(1).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Какова сложность удаления из начала для ArrayList и LinkedList?

A

ArrayList: O(n), LinkedList: O(1).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Какова сложность удаления из конца для ArrayList и LinkedList?

A

ArrayList: O(1), LinkedList: O(1).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Какова сложность удаления из середины для ArrayList и LinkedList?

A

ArrayList: O(n), LinkedList: O(1) (если узел известен).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Каково использование LinkedList?

A

Удобен для частой вставки в начало и конец.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Когда не использовать LinkedList?

A

Если нужен частый доступ по индексу или важна экономия памяти.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Как устроен ArrayList внутри?

A

Массив при достижении размера постоянно копируется.

17
Q

В чем отличие между интерфейсами ‘Set’ и ‘List’?

A

Set запрещает дубликаты, List разрешает.

18
Q

Каковы характеристики HashSet, LinkedHashSet и TreeSet?

A

HashSet: не гарантирует порядок, LinkedHashSet: по порядку добавления, TreeSet: отсортированный.

19
Q

Что такое HashSet и как он работает?

A

Множество уникальных элементов. Доступ по ключу мгновенный.

20
Q

В чем разница между HashSet и TreeSet?

A

TreeSet упорядочен, HashSet не сохраняет порядок.

21
Q

Что такое HashMap и как она работает?

A

Структура ключ-значение. Внутри массив с индексами (бакетами).

22
Q

Что происходит в ‘HashMap’ при коллизии ключей?

A

При коллизии происходит дополнительная проверка по equals.

23
Q

Что такое процедура рехеширования?

A

Пересчитывается хешкод и перераспределяет по мапам.

24
Q

Что такое Hashtable?

A

Ассоциативный массив, хранит пары. Устаревший, не пользуется.

25
Что такое PriorityQueue?
Реализация очереди с приоритетами, элементы извлекаются в порядке приоритета.
26
Как происходит изменение размера массива в HashMap?
Умножаем на 2 размер.