Collections 1 Flashcards
коллекция
Коллекции это класс, основная цель которого – хранить набор других элементов.
Коллекции могут хранить любые ссылочные типы данных
Collection
Это корневой интерфейс в иерархии коллекций Java. Он представляет собой группу объектов (элементов). Интерфейс предоставляет основные методы для работы с коллекциями, такие как добавление, удаление и проверка наличия элементов.
Collection vs Collections
java.util.Collections - набор статических методов для работы с коллекциями.
java.util.Collection - один из основных интерфейсов Java Collections Framework.
Диаграмма Collection
Iterable
Collection<E> (из java.util)
├── List<E> (java.util)
├── Set<E> (java.util)
├── Queue<E> (java.util)
├── Deque<E> (java.util)
└── BeanContext (java.beans.beancontext)</E></E></E></E></E>
Итератор
Это объект, который позволяет последовательно обходить элементы коллекции. Он предоставляет методы hasNext(), next() и remove().
fail-fast итератор
это итератор, который выбрасывает исключение, если коллекция изменяется (например, добавляется или удаляется элемент) во время итерации, за исключением случаев, когда изменение происходит через методы самого итератора.
fail-safe итератор
В противоположность fail-fast, итераторы fail-safe не вызывают никаких исключений при изменении структуры, потому что они работают с клоном коллекции вместо оригинала.
Итератор коллекции CopyOnWriteArrayList и итератор представления keySet коллекции ConcurrentHashMap являются примерами итераторов fail-safe.
разница между Iterator и ListIterator
- Iterator может использоваться для перебора элементов Set, List и Map. В отличие от него, ListIterator может быть использован только для перебора элементов коллекции List
- Iterator позволяет перебирать элементы только в одном направлении, при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous()
- При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данную функциональность.