Collections 2. List Flashcards

1
Q

List

A

List — это упорядоченный список.
Объекты хранятся в порядке их добавления в список.
Доступ к элементам списка осуществляется по индексу.

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

Диаграмма List

A

List<E> (интерфейс)

├── ArrayList<E> (динамический массив)

├── LinkedList<E> (двусвязный список)

├── Vector<E> (устаревший, синхронизированный)
│ │
│ └── Stack<E> (стек, LIFO)</E></E></E></E></E>

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

Краткое описание реализаций List

A

ArrayList<E> – основан на массиве, быстрый доступ по индексу (O(1)).
LinkedList<E> – двусвязный список, эффективное добавление/удаление (O(1)).
Vector<E> – аналог ArrayList, но потокобезопасный (устарел).
Stack<E> – реализует принцип LIFO (Last In, First Out).</E></E></E></E>

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

Чем List отличается от Set

A

List допускает дубликаты и элементы в нем хранятся в порядке добавления, а Set не допускает дубликатов.

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

Как безопасно удалить элементы из List во время итерации?

A

Использовать Iterator.remove() вместо remove()

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

Как работает метод equals для List

A

Метод equals сравнивает два списка поэлементно. Списки считаются равными, если они содержат одинаковые элементы в одинаковом порядке.

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

Как работает метод hashCode для List

A

Метод hashCode вычисляет хэш-код списка на основе хэш-кодов его элементов. Это позволяет использовать List в качестве ключа в HashMap

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

Как CopyOnWriteArrayList обеспечивает потокобезопасность

A

CopyOnWriteArrayList создает новую копию массива при каждой модификации (добавлении, удалении). Это позволяет читать данные без блокировок, но может быть затратно по памяти.

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