Java SE 4. Collections презентация

Содержание


Презентации» Образование» Java SE 4. Collections
Java SE 4. CollectionsJava Collections FrameworkJava Collections Framework
 Коллекции (контейнеры) - хранилища, поддерживающие разнообразные способы накопленияJava Collections Framework
 Collection Interfaces – представляют собой описания фундаментальных типовИерархия интерфейсов
 Интерфейсы представляют собой наиболее общие описания фундаментально различных типовИерархия реализацийjava.util.Collectionpublic interface Collection<E> extends Iterable<E>
 Является образующим для интерфейсов коллекций
 Определяетpublic interface Collection<E> extends Iterable<E>java.util.Setpublic interface Set<E> extends Collection<E>
 Set — коллекция, не содержащая дубликатов
Основные реализации и дочерние интерфейсы Set
 HashSet – неупорядоченное множество, реализованноеjava.util.ListОсновные реализации и дочерние интерфейсы List
 List — упорядоченная по времениpublic interface List<E> extends Collection<E>Основные реализации List
 Vector - Legacy-коллекция, адаптированная к интерфейсу List. Синхронизированная иjava.util.QueueОсновные реализации и дочерние интерфейсы Queue
 ArrayBlockingQueue  хранит элементы в порядкеQueue API
 Queue представляет много дополнительных методов для работы с даннымиjava.util.MapОсновные реализации и дочерние интерфейсы Mappublic interface Map<K,V>
 Map предоставляет много вариантов перебора содержимого
 Через коллекциюMap API example
 Типизация Map при помощи Generics позволяет быть увереннымОсновные реализации Map
 HashMap  - Самая распространенная реализация, основана на хэш-таблице
ИтераторыIterator
 Iterator – специальный объект для последовательного обхода коллекции
 Является реализациейIterator – пример использованияListIterator
 Расширяет стандартный итератор дополнительной функциональностью:
 В отличие от простого итератораСравнение и сортировка элементов коллекцийComparator
 Comparator – интерфейс, описывающий алгоритм сравнения двух объектов.
 Он можетComparable
 В качестве альтернативы сами объекты с данными могут реализовывать интерфейсПримеры использования Comparator
 Если правила сортировки описаны во внешнем Comparator’е, тоCollator
 Сортировка в лексикографическом порядке должна принимать во внимание не толькоУтилитные классыjava.util.Collections
 Этот утилитный класс предоставляет набор статических методов для типовых операцийjava.util.Arrays
 Предоставляет утилитные методы для работы с массивами:
 Бинарный поиск
 ПолноеДругие реализации интерфейсов Collection API
 Обертки и адаптеры для добавления некоторой



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Java SE 4. Collections


Слайд 2
Описание слайда:
Java Collections Framework

Слайд 3
Описание слайда:
Java Collections Framework Коллекции (контейнеры) - хранилища, поддерживающие разнообразные способы накопления и упорядочивания объектов с целью обеспечения возможностей эффективного доступа В отличие от массивов могут поддерживать дополнительную функциональность и быть более эффективными в определенных ситуациях Примерный аналог контейнеров и итераторов STL В Java коллекции разделены на интерфейсы, абстрагирующие общие принципы работы с коллекциями, и классы, реализующие конкретную функциональность Большинство из них размещено в пакете java.util.* и его подпакетах

Слайд 4
Описание слайда:
Java Collections Framework Collection Interfaces – представляют собой описания фундаментальных типов контейнеров и возможных операций над ними. General-purpose Implementations – Самые часто используемые реализации эти интерфейсов. Legacy Implementations – устаревшие контейнеры, существовавшие еще до появления Collection Framework и переписанные для реализации Collection-интерфейсов. Wrapper Implementations – сами по себе не хранят данных, но добавляют функциональность к другим коллекциям. Convenience Implementations – высокопроизводительные тривиальные реализации для простых случаев. Abstract Implementations – частичные реализации как основа для собственных коллекций. Arrays/Collections Utilities – набор вспомогательных утилитных методов для работы с коллекциями и массивами

Слайд 5
Описание слайда:
Иерархия интерфейсов Интерфейсы представляют собой наиболее общие описания фундаментально различных типов коллекций List – упорядоченный список с позиционным доступом Set – коллекция без дубликатов Queue – очередь элементов или стэк Map – ассоциативный массив

Слайд 6
Описание слайда:
Иерархия реализаций

Слайд 7
Описание слайда:
java.util.Collection

Слайд 8
Описание слайда:
public interface Collection<E> extends Iterable<E> Является образующим для интерфейсов коллекций Определяет базовую функциональность любой коллекции Подразумевает добавление, удаление, выбор элементов в коллекции Допускает дубликаты и пустые элементы Позволяет получить итератор для обхода коллекции Не все методы, заявленные в интерфейсе, должны реализовываться классами. Часть методов может выбрасывать UnsupportedOperationException

Слайд 9
Описание слайда:
public interface Collection<E> extends Iterable<E>

Слайд 10
Описание слайда:
java.util.Set

Слайд 11
Описание слайда:
public interface Set<E> extends Collection<E> Set — коллекция, не содержащая дубликатов Может содержать не более одного Null-значения Все остальные свойства могут варьироваться в зависимости от конкретной реализации Set не добавляет дополнительных методов к интерфейсу Collection и является маркерным интерфейсом с дополнительной документацией Как правило Set не поддерживает порядок элементов, но некоторые реализации это позволяют

Слайд 12
Описание слайда:
Основные реализации и дочерние интерфейсы Set HashSet – неупорядоченное множество, реализованное через хэш-таблицу TreeSet – отсортированное множество на красно-черных деревьях LinkedHashSet – множество, сохраняющее порядок добавления элементов СopyOnWriteArraySet – потоково-безопасная реализация

Слайд 13
Описание слайда:
java.util.List

Слайд 14
Описание слайда:
Основные реализации и дочерние интерфейсы List List — упорядоченная по времени добавления коллекция В отличие от других коллекций List позволяет делать позиционный доступ к элементам по индексам Некоторые старые коллекции были переделаны, чтобы также реализовывать этот интерфейс (Vector, Stack)

Слайд 15
Описание слайда:
public interface List<E> extends Collection<E>

Слайд 16
Описание слайда:
Основные реализации List Vector - Legacy-коллекция, адаптированная к интерфейсу List. Синхронизированная и безопасная в многопоточной среде Stack -  Наследник вектора, реализующий LIFO структуру данных ArrayList - Самая распространенная реализация на базе массива LinkedList - Реализация на базе связного списка, также этот класс реализует интерфейс Queue и может выступать в качестве очереди CopyOnWriteArrayList – Потоково безопасная реализация, создающая копию массива данных при каждой операции записи

Слайд 17
Описание слайда:
java.util.Queue

Слайд 18
Описание слайда:
Основные реализации и дочерние интерфейсы Queue ArrayBlockingQueue  хранит элементы в порядке FIFO; синхронизированная реализация. SynchronousQueue - каждая операция добавления будет блокирована до соответствующей операции чтения и наоборот. Фактически это блокирующая ячейка под единственный элемент

Слайд 19
Описание слайда:
Queue API Queue представляет много дополнительных методов для работы с данными помимо стандартных

Слайд 20
Описание слайда:
java.util.Map

Слайд 21
Описание слайда:
Основные реализации и дочерние интерфейсы Map

Слайд 22
Описание слайда:
public interface Map<K,V> Map предоставляет много вариантов перебора содержимого Через коллекцию ключей - keySet() Через коллекцию значений – values() Через коллекцию пар, так называемых Map.Entry Разные реализации могут допускать или не допускать Null-значения Примитивный тип не может выступать в роли ключа или значения

Слайд 23
Описание слайда:
Map API example Типизация Map при помощи Generics позволяет быть уверенным в том, что все ключи имеют одинаковый тип и все значения также имеют одинаковый тип, возможно не совпадающий с типом ключей

Слайд 24
Описание слайда:
Основные реализации Map HashMap  - Самая распространенная реализация, основана на хэш-таблице ConcurrentHashMap - Реализация для работы в многопоточной среде, причем доступ на чтение будет неблокирующим Hashtable - Legacy-коллекция с синхронизированным доступом WeakHashMap - Эта реализация будет удалять записи, на ключи которых нет ссылок за пределами коллекции LinkedHashMap – Гарантирует, что элементы коллекции будут возвращаться в том же порядке, что и были в нее добавлены TreeMap – Ключи в этой коллекции будут отсортированы согласно Cormparator’у или реализации Comparable IdentityHashMap  - Эта реализация использует для сравнения элементов равенcтво ссылок вместо вызова equals(). EnumMap - Ключи этой реализации являются значениями enum. Очень эффективная и высокопроизводительная реализация

Слайд 25
Описание слайда:
Итераторы

Слайд 26
Описание слайда:
Iterator Iterator – специальный объект для последовательного обхода коллекции Является реализацией одноименного шаблона проектирования Iterator можно получить из любой коллекции вызовом метода iterator() Для абстрактной коллекции это единственный доступный способ обхода Цикл for each использует итератор неявным образом Интерфейс итератора:

Слайд 27
Описание слайда:
Iterator – пример использования

Слайд 28
Описание слайда:
ListIterator Расширяет стандартный итератор дополнительной функциональностью: В отличие от простого итератора позволяет двигаться не только вперед по коллекции, но и назад Метод set() перезапишет предыдущий элемент Метод add() добавит новый элемент в коллекцию непосредственно перед указателем итератора

Слайд 29
Описание слайда:
Сравнение и сортировка элементов коллекций

Слайд 30
Описание слайда:
Comparator Comparator – интерфейс, описывающий алгоритм сравнения двух объектов. Он может быть передан во многие коллекции и структуры данных для упорядочивания данных Несколько компараторов могут определять разные правила сортировки одних и тех же данных

Слайд 31
Описание слайда:
Comparable В качестве альтернативы сами объекты с данными могут реализовывать интерфейс Comparable, таким образом предоставляя API для сортировки себя Если метод compareTo() возвращает положительное число, то данный объект считается больше аргумента Если результат – отрицательное число, то данный объект меньше аргумента В случае равенства возвращается ноль Эта реализация должна соответствовать реализации equals() – обе они должны показывать равенство в одним и тех же условиях

Слайд 32
Описание слайда:
Примеры использования Comparator Если правила сортировки описаны во внешнем Comparator’е, то сортировка выглядит так:

Слайд 33
Описание слайда:
Collator Сортировка в лексикографическом порядке должна принимать во внимание не только алфавит, но и язык оригинала текста Эта информация не может быть в общем случае получена из текста, так что она указывается отдельно в виде наследника абстрактного класса Collator Сollator является реализацией Comparator, то есть может быть использован для сортировки коллекций

Слайд 34
Описание слайда:
Утилитные классы

Слайд 35
Описание слайда:
java.util.Collections Этот утилитный класс предоставляет набор статических методов для типовых операций над коллекциями Сортировка Перемешивание элементов Разворот коллекции Заполнение Двоичный поиск Определение частоты вхождений Пересечение Нахождение минимума и максимума etc.

Слайд 36
Описание слайда:
java.util.Arrays Предоставляет утилитные методы для работы с массивами: Бинарный поиск Полное и частичное копирование Преобразование к реализации интерфейса List equals(), работающий по элементам массива deepToString(), вызывающий toString() у всех элементов массива Заполнение массива одинаковыми значениями Сортировка

Слайд 37
Описание слайда:
Другие реализации интерфейсов Collection API Обертки и адаптеры для добавления некоторой функциональности к уже существующим коллекциям Синхронизирующие обертки Обертки, запрещающие модификацию «Convenience implementations» - минималистичные реализации коллекций для использования в вырожденных или специфических случаях Arrays.asList() Немодифицируемые коллекции из единственного элемента Пустые Set, List и Map

Слайд 38
Описание слайда:

Слайд 39
Описание слайда:


Скачать презентацию на тему Java SE 4. Collections можно ниже:

Похожие презентации