Интерфейсы набора - основные средства, которыми управляют наборами.
Набор - группа объектов. Никакие предположения не делаются о порядке набора (если никто) или может ли это содержать двойные элементы.
Набор - знакомая абстракция набора. Никакие двойные элементы не разрешаются. Может или, возможно, не упорядочивается. Расширяет интерфейс Collection.
Список - Упорядоченный набор, также известный как последовательность. Копии обычно разрешаются. Предоставляет позиционный доступ. Расширяет интерфейс Collection.
Очередь - набор, разработанный для содержания элементов перед обработкой. Помимо основных операций Collection, очереди обеспечивают дополнительную вставку, экстракцию, и инспекционные операции.
Двухсторонняя очередь - очередь с двусторонним доступом, поддерживая вставку элемента и удаление в обоих концах. Расширяет интерфейс Queue.
Карта - отображение от ключей до значений. Каждый ключ может отобразиться на одно значение.
SortedSet - набор, элементы которого автоматически сортируются, любой в их естественном упорядочивании (см., что Comparable взаимодействует через интерфейс), или объектом Comparator, обеспеченным, когда экземпляр SortedSet создается. Расширяет интерфейс Set.
SortedMap - карта, отображения которой автоматически сортируются ключом, или использование естественного упорядочивания ключей или компаратором, обеспеченным, когда экземпляр SortedMap создается. Расширяет интерфейс Map.
NavigableSet - SortedSet, расширенный с помощью методов навигации, сообщая о самых близких соответствиях для данных целей поиска. К NavigableSet можно получить доступ и пересечен или в порядке по возрастанию или в порядке по убыванию.
NavigableMap - SortedMap, расширенный с помощью методов навигации, возвращая самые близкие соответствия для данных целей поиска. К NavigableMap можно получить доступ и пересечен или в возрастании или в убывающем ключевом порядке.
BlockingQueue - Queue с операциями, которые ожидают очереди, чтобы стать непустыми, получая элемент и которые ожидают пространства, чтобы стать доступными в очереди, храня элемент. (Этот интерфейс является частью пакета java.util.concurrent.)
TransferQueue - BlockingQueue, в котором производители могут ожидать потребителей, чтобы получить элементы. (Этот интерфейс является частью пакета java.util.concurrent.)
BlockingDeque - Deque с операциями, которые ожидают двухсторонней очереди, чтобы стать непустыми, получая элемент и ожидать пространства, чтобы стать доступными в двухсторонней очереди, храня элемент. Расширяет и Deque и интерфейсы BlockingQueue. (Этот интерфейс является частью пакета java.util.concurrent.)
ConcurrentMap - Map с атомарным putIfAbsent, remove, и методами replace. (Этот интерфейс является частью пакета java.util.concurrent.)
LinkedHashSet - Хэш-таблица и реализация связанного списка интерфейса Set. Упорядоченная вставкой реализация Set, которая работает почти с такой скоростью, как HashSet.
LinkedList - реализация Двунаправленного связанного списка интерфейса List. Обеспечивает лучшую производительность чем реализация ArrayList, если элементы часто вставляются или удаляются в пределах списка. Также реализует интерфейс Deque. Когда получено доступ через интерфейс Queue, LinkedList действует как очередь FIFO.
LinkedHashMap - Хэш-таблица и реализация связанного списка интерфейса Map. Упорядоченная вставкой реализация Map, которая работает почти с такой скоростью, как HashMap. Также полезный для создания кэшей (см. removeEldestEntry (Карта. Запись)).
Реализации обертки - Улучшающие функциональность реализации для использования с другими реализациями. Полученный доступ исключительно через статические методы фабрики.
Collections.unmodifiableInterface - Возвраты неподдающееся изменению представление указанного набора, который бросает UnsupportedOperationException, если пользователь пытается изменить его.
Collections.synchronizedInterface - Возвраты синхронизируемый набор, который поддерживается указанным (обычно несинхронизируемый) набор. Пока все доступы к отступающему набору через возвращенный набор, потокобезопасность гарантируется.
Collections.checkedInterface - Возвраты динамически безопасное с точки зрения типов представление указанного набора, который бросает ClassCastException, если клиент пытается добавить элемент неправильного типа. Механизм обобщений на языке обеспечивает время компиляции (статическая) проверка типа, но возможно обойти этот механизм. Динамически безопасные с точки зрения типов представления устраняют эту возможность.
Реализации адаптера - Реализации, которые адаптируют один интерфейс наборов другому:
newSetFromMap (Карта) - Создает реализацию Set общего назначения из реализации Map общего назначения.
одиночный элемент, singletonList, и singletonMap - Возврат неизменный одноэлементный набор, список, или карта, содержа только указанный объект (или отображение значения ключа).
nCopies - Возвраты неизменный список, состоящий из n копий указанного объекта.
Реализации наследства - Более старые классы набора были retrofitted, чтобы реализовать интерфейсы набора.
Вектор - Синхронизировал реализацию массива изменяемого размера интерфейса List с дополнительными методами наследства.
Хеш-таблица - Синхронизировала реализацию хэш-таблицы интерфейса Map, который не позволяет ключи null или значения плюс дополнительные методы наследства.
Реализации специального назначения
WeakHashMap - реализация интерфейса Map, который хранит только слабые ссылки на его ключи. Хранение только слабые ссылки позволяют парам ключ/значение быть собранными "мусор", когда на ключ больше не ссылаются за пределами WeakHashMap. Этот class является самым легким способом использовать питание слабых ссылок. Это полезно для реализации подобных реестру структур данных, где утилита записи исчезает, когда ее ключ больше не достижим любым потоком.
IdentityHashMap - Основанная на идентификационных данных реализация Map, основанная на хэш-таблице. Этот class полезен для сохраняющих топологию преобразований графа объектов (таких как сериализация или глубоко копирование). Чтобы выполнить эти преобразования, следует поддержать основанную на идентификационных данных "таблицу узла", которая отслеживает, из которых были уже замечены объекты. Основанные на идентификационных данных карты также используются, чтобы поддержать отображения объекта к метаинформации в динамических отладчиках и подобных системах. Наконец, основанные на идентификационных данных карты полезны в предотвращении "атак имитации", следующих преднамеренно извращенного, равняется методам. (IdentityHashMap никогда не вызывает, равняется методу на его ключах.) Дополнительное преимущество этой реализации - то, что это быстро.
CopyOnWriteArrayList - реализация List отступала массивом копии на записи. Все изменчивые операции (такие как add, set, и remove) реализуются, делая новую копию массива. Никакая синхронизация не необходима, даже во время итерации, и iterators, как гарантируют, никогда не не бросят ConcurrentModificationException. Эта реализация является подходящей к поддержанию списков обработчика событий (где изменение является нечастым, и обход является частым и потенциально отнимающим много времени).
CopyOnWriteArraySet - реализация Set отступала массивом копии на записи. Эта реализация подобна CopyOnWriteArrayList. В отличие от большинства реализаций Set, add, remove, и методы contains требуют времени, пропорционального размеру набора. Эта реализация хорошо подходит для поддержания списков обработчика событий, которые должны предотвратить копии.
EnumSet - высокоэффективная реализация Set отступала небольшим количеством вектора. Все элементы каждого экземпляра EnumSet должны быть элементами единственного перечислимого типа.
EnumMap - высокоэффективная реализация Map отступала массивом. Все ключи в каждом экземпляре EnumMap должны быть элементами единственного перечислимого типа.
Параллельные реализации - Эти реализации являются частью java.util.concurrent.
ConcurrentLinkedQueue - неограниченное сначала в, сначала (FIFO) очередь, основанная на соединенных узлах.
LinkedBlockingQueue - дополнительно ограниченная очередь блокирования FIFO отступала соединенными узлами.
ArrayBlockingQueue - ограниченная очередь блокирования FIFO отступала массивом.
PriorityBlockingQueue - неограниченная приоритетная очередь блокирования отступала приоритетной "кучей".
DelayQueue - основанная на времени очередь планирования отступала приоритетной "кучей".
SynchronousQueue - простой механизм рандеву, который использует интерфейс BlockingQueue.
ConcurrentHashMap - очень параллельная, высокоэффективная реализация ConcurrentMap, основанная на хэш-таблице. Эта реализация никогда не блокирует, выполняя извлечения и позволяет клиенту выбрать уровень параллелизма для обновлений. Это предназначается как понижение замены для Hashtable. В дополнение к реализации ConcurrentMap это поддерживает все методы наследства Hashtable.
Алгоритмы - Наборы class содержат эти полезные статические методы.
вид (Список) - Сортирует список, используя алгоритм сортировки слиянием, который обеспечивает среднюю производительность случая, сопоставимую с высоким качеством quicksort, гарантировал O (n*log n) производительность (в отличие от quicksort), и устойчивость (в отличие от quicksort). Устойчивый вид является тем, который не переупорядочивает равные элементы.
Iterators - Подобный знакомому интерфейсу Перечисления, но более мощный, и с улучшенными именами методов.
Iterator - В дополнение к функциональности интерфейса Enumeration, позволяет пользователю удалить элементы из отступающего набора с четко определенной, полезной семантикой.
ListIterator - Iterator для использования со списками. В дополнение к функциональности интерфейса Iterator, поддерживает двунаправленную итерацию, замену элемента, вставку элемента, и индексируйте извлечение.
Упорядочивание
Сопоставимый - Передает естественное упорядочивание классам, которые реализуют его. Естественное упорядочивание может использоваться, чтобы сортировать список или поддержать порядок в сортированном наборе или карте. Много классов были retrofitted, чтобы реализовать этот интерфейс.
Компаратор - Представляет отношение порядка, которое может использоваться, чтобы сортировать список или поддержать порядок в сортированном наборе или карте. Может переопределить естественное упорядочивание типа или упорядочить объекты типа, который не реализует интерфейс Comparable.
ConcurrentModificationException - Брошенный iterators и списком iterators, если отступающий набор неожиданно изменяется, в то время как итерация происходит. Также брошенный представлениями подсписка списков, если отступающий список неожиданно изменяется.
Производительность
RandomAccess - интерфейс Маркера, который позволяет реализациям List указывать, что они поддерживают быстро (обычно постоянное время) произвольный доступ. Это позволяет универсальным алгоритмам изменять свое поведение, чтобы обеспечить хорошую производительность когда применено к или произвольный доступ или с последовательным доступом списки.
Утилиты массива
Массивы - Содержат статические методы к виду, поиску, сравните, хешируйте, скопируйте, измените размеры, преобразуйте в String, и массивы заливки примитивов и объектов.