Презентация Java. SE. 06. Generic and collections онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Java. SE. 06. Generic and collections абсолютно бесплатно. Урок-презентация на эту тему содержит всего 172 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Java. SE. 06. Generic and collections
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:172 слайда
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:762.47 kB
- Просмотров:102
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№4 слайд
Содержание слайда: Определение коллекций
Коллекции – это хранилища, поддерживающие различные способы накопления и упорядочения объектов с целью обеспечения возможностей эффективного доступа к ним.
Применение коллекций обуславливается возросшими объемами обрабатываемой информации.
Коллекции в языке Java объединены в библиотеке классов java.util и представляют собой контейнеры, т.е объекты, которые группируют несколько элементов в отдельный модуль.
Коллекции используются для хранения, поиска, манипулирования и передачи данных.
Коллекции – это динамические массивы, связные списки, деревья, множества, хэш-таблицы, стеки, очереди.
№6 слайд
Содержание слайда: Определение коллекций
Интерфейсы коллекций:
Collection<E> – вершина иерархии остальных коллекций;
List<E> – специализирует коллекции для обработки списков;
Set<E> – специализирует коллекции для обработки множеств, содержащих уникальные элементы;
Map<K,V> – карта отображения вида “ключ-значение”.
Интерфейсы позволяют манипулировать коллекциями независимо от деталей конкретной реализации, реализуя тем самым принцип полиморфизма
№10 слайд
Содержание слайда: Определение коллекций
Реализации (Implementations)
Конкретные реализации интерфейсов могут быть следующих типов:
General-purpose implementations
Special-purpose implementations
Concurrent implementations
Wrapper implementations
Convenience implementations
Abstract implementations
№12 слайд
Содержание слайда: Определение коллекций
Special-Purpose Implementations - реализации специального назначения, разработаны для использования в специальных ситуациях и предоставляют нестандартные характеристики производительности, ограничения на использование или на поведение
EnumSet , CopyOnWriteArraySet.
CopyOnWriteArrayList
EnumMap, WeakHashMap, IdentityHashMap
№14 слайд
Содержание слайда: Определение коллекций
Wrapper implementations – реализация обертки, применяется для реализации нескольких типов в одном, чтобы обеспечить добавленную или ограниченную функциональность, все они находятся в классе Collections.
public static <T> Collection<T> synchronizedCollection(Collection<T> c); public static <T> Set<T> synchronizedSet(Set<T> s); public static <T> List<T> synchronizedList(List<T> list); public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m); public static <T> SortedSet<T> synchronizedSortedSet(SortedSet<T> s); и др.
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c); public static <T> Set<T> unmodifiableSet(Set<? extends T> s); public static <T> List<T> unmodifiableList(List<? extends T> list); public static <K,V> Map<K, V> unmodifiableMap(Map<? extends K, ? extends V> m); public static <T> SortedSet<T> unmodifiableSortedSet(SortedSet<? extends T> s); public static <K,V> SortedMap<K, V> unmodifiableSortedMap(SortedMap<K, ? extends V> m);
№15 слайд
Содержание слайда: Определение коллекций
Convenience implementations – удобные реализации, выполнены обычно с использованием реализаций общего назначения и применением static factory methods для предоставления альтернативных путей создания (например, единичной коллекции)
Получить такие коллекции можно при помощи следующих методов
Arrays.asList
Collections.nCopies
Collections.singleton
emptySet, emptyList, emptyMap. (из Collections)
№17 слайд
Содержание слайда: Определение коллекций
Алгоритмы (Algorithms)
Это методы, которые выполняют некоторые вычисления, такие как поиск, сортировка объектов, реализующих интерфейс Сollection.
Они также реализуют принцип полиморфизма, таким образом один и тот же метод может быть использован в различных реализациях Сollection интерфейса.
По существу, алгоритмы представляют универсальную функциональность.
№19 слайд
Содержание слайда: Интерфейс Collection
Интерфейс Collection - вершина иерархии коллекций
Интерфейс Collection - наименьший набор характеристик, реализуемых всеми коллекциями
JDK не предоставляет прямых реализаций этого интерфейса, но существует множество реализаций более специфичных подинтерфейсов таких как Set и List.
№20 слайд
Содержание слайда: Интерфейс Collection
public interface Collection<E> extends Iterable<E> {
boolean equals(Object o);
int size(); //возвращает количество элементов в коллекции;
boolean isEmpty(); // возвращает true, если коллекция пуста;
boolean contains(Object element); //возвращает true, если коллекция содержит элемент element;
boolean add(E element); //добавляет element к вызывающей коллекции и возвращает true, если объект добавлен, и false, если element уже элемент коллекции;
boolean remove(Object element); //удаляет element из коллекции;
Iterator<E> iterator(); //возвращает итератор
№21 слайд
Содержание слайда: Интерфейс Collection
boolean containsAll(Collection<?> c); //возвращает true, если коллекция содержит все элементы из c;
boolean addAll(Collection<? extends E> c); //добавляет все элементы коллекции к вызывающей коллекции;
boolean removeAll(Collection<?> c); //удаление всех элементов данной коллекции, которые содержаться в c;
boolean retainAll(Collection<?> c); //удаление элементов данной коллекции, которые не содержаться в коллекции c;
void clear(); //удаление всех элементов.
Object[] toArray(); //копирует элементы коллекции в массив объектов
<T> T[] toArray(T[] a); //возвращает массив, содержащий все элементы коллекции
}
№24 слайд
Содержание слайда: Интерфейс Collection
Некоторые методы интерфейса Collection могут быть не реализованы в подклассах (нет необходимости их реализовывать). В этом случае метод генерирует java.lang.UnsupportedOperationException (подкласс RuntimeException)
Это хорошее решение, которое следует использовать.
№29 слайд
Содержание слайда: Множества Set
public interface Set<E> extends Collection<E> {
int size(); //возвращает количество элементов в множестве
boolean isEmpty(); //возвращает true, если множество пусто;
boolean contains(Object element); //возвращает true, если множество содержит элемент element
boolean add(E element); //добавляет element к вызывающему множеству и возвращает true, если объект добавлен, и false, если element уже элемент множества
boolean remove(Object element); // удаляет element из множества
Iterator<E> iterator(); // возвращает итератор по множеству
№30 слайд
Содержание слайда: Множества Set
boolean containsAll(Collection<?> c); // возвращает true, если множество содержит все элементы коллекции с
boolean addAll(Collection<? extends E> c); //добавление всех элементов из коллекции c во множество, если их еще нет
boolean removeAll(Collection<?> c); //удаляет из множества все элементы, входящие в коллекцию c
boolean retainAll(Collection<?> c); //сохраняет элементы во множестве, которые также содержаться и в коллекции с
void clear(); //удаление всех элементов
Object[] toArray(); //копирует элементы множества в массив объектов
<T> T[] toArray(T[] a); //возвращает массив, содержащий все элементы множества
}
№32 слайд
Содержание слайда: Множества Set
Правила сравнения на равенство
Метод boolean equals(Object o)
Рефлексивность
o1.equals(o1)
Симметричность
o1.equals(o2) == e2.equals(o1)
Транзитивность
o1.equals(o2) && o2.equals(o3) => o1.equals(o3)
Устойчивость
o1.equals(o2) не изменяется, если o1 и o2 не изменяются
Обработка null
o1.equals(null) == false
№34 слайд
Содержание слайда: Множества Set
public interface SortedSet<E> extends Set<E>{
Comparator<? super E> comparator(); // возвращает способ упорядочения коллекции;
E first(); // минимальный элемент
SortedSet<E> headSet(E toElement); //подмножество элементов, меньших toElement
E last(); // максимальный элемент
SortedSet<E> subSet(E fromElement, E toElement); // подмножество элементов, меньших toElement и больше либо равных fromElement
SortedSet<E> tailSet(E fromElement); // подмножество элементов, больших либо равных fromElement
}
№37 слайд
Содержание слайда: Множества Set
// методы, позволяющие получить подмножество элементов. Параметры fromElement и toElement ограничивают подмножество снизу и сверху, а флаги fromInclusive и toInclusive показывают, нужно ли в результирующий набор включать граничные элементы. headSet возвращает элементы с начала набора до указанного элемента, а tailSet - от указанного элемента до конца набора. Перегруженные методы без логических параметров включают в выходной набор первый элемент интервала, но исключают последний.
SortedSet<E> headSet(E toElement)
NavigableSet<E> headSet(E toElement, boolean inclusive)
NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
SortedSet<E> subSet(E fromElement, E toElement)
SortedSet<E> tailSet(E fromElement)
NavigableSet<E> tailSet(E fromElement, boolean inclusive)
}
№38 слайд
Содержание слайда: Множества Set
Класс AbstractSet - convenience class , который наследуется от AbstractCollection и реализует интерфейс Set.
Класс AbstractSet предоставляет реализацию методов equals и hashCode;
hash-код множества – это сумма всех hash-кодов его элементов;
методы size и iterator не реализованы.
№39 слайд
Содержание слайда: Множества Set
HashSet – неотсортированная и неупорядоченная коллекция, для вставки элемента используются методы hashCode() и equals(…).
Чем эффективней реализован метод hashCode(), тем эффективней работает коллекция.
HashSet используется в случае, когда порядок элементов не важен, но важно чтобы в коллекции все элементы были уникальны.
№40 слайд
Содержание слайда: Множества Set
Конструкторы HashSet
HashSet() ─ создает пустое множество;
HashSet(Collection<? extends E> c) ─ создает новое множество с элементами коллекции c;
HashSet(int initialCapacity) ─ создает новое пустое множество размера initialCapacity;
HashSet(int initialCapacity, float loadFactor) ─ создает новое пустое множество размера initialCapacity со степенью заполнения loadFactor.
Выбор слишком большой первоначальной вместимости (capacity) может обернуться потерей памяти и производительности.
Выбор слишком маленькой первоначальной вместимости (capacity) уменьшает производительность из-за копирования данных каждый раз, когда вместимость увеличивается.
№41 слайд
Содержание слайда: Множества Set
Для эффективности объекты, добавляемые в множество должны реализовывать hashСode.
Метод int hashCode() - возвращает значение хэш-кода множества
Правила:
Устойчивость
hashCode() не изменяется, если объект не изменяется
Согласованность с equals()
o1.equals(o2) => o1.hashCode() == o2.hashCode()
№45 слайд
Содержание слайда: Множества Set
TreeSet<E> – реализует интерфейс NavigableSet<E>, который поддерживает элементы в отсортированном по возрастанию порядке.
Для хранения объектов использует бинарное дерево.
При добавлении объекта в дерево он сразу же размещается в необходимую позицию с учетом сортировки.
Сортировка происходит благодаря тому, что все добавляемые элементы реализуют интерфейсы Comparator и Comparable.
Обработка операций удаления и вставки объектов происходит медленнее, чем в хэш-множествах, но быстрее, чем в списках.
№48 слайд
Содержание слайда: Множества Set
Класс TreeSet<E> содержит методы по извлечению первого и последнего (наименьшего и наибольшего) элементов E first() и E last().
Методы SortedSet<E> subSet(E from, E to), SortedSet<E> tailSet(E from) и SortedSet<E> headSet(E to) предназначены для извлечения определенной части множества.
Метод Comparator <? super E> comparator() возвращает объект Comparator, используемый для сортировки объектов множества или null, если выполняется обычная сортировка.
№52 слайд
Содержание слайда: Интерфейс Iterator
Для обхода коллекции можно использовать:
for-each
Конструкция for-each является краткой формой записи обхода коллекции с использованием цикла for.
Iterator
Итератор это объект, который позволяет осуществлять обход коллекции и при желании удалять избранные элементы.
№54 слайд
Содержание слайда: Интерфейс Iterator
public interface Iterator {
boolean hasNext(); // возвращает true при наличии следующего элемента, а в случае его отсутствия возвращает false. Итератор при этом остается неизменным;
Object next(); // возвращает объект, на который указывает итератор, и передвигает текущий указатель на следующий итератор, предоставляя доступ к следующему элементу. Если следующий элемент коллекции отсутствует, то метод next() генерирует исключение ;
void remove(); // удаляет объект, возвращенный последним вызовом метода next()
}
№59 слайд
Содержание слайда: Интерфейс Iterator
Чтобы удалить все экземпляры определенного элемента е из коллекции с воспользуйтесь следующим кодом:
Удалить все элементы null из коллекции
Collections.singleton(), статический метод, который возвращает постоянное множество, содержащее только определенный элемент.
№61 слайд
Содержание слайда: Сравнение коллекций. Comparator, Comparable
Естественный порядок сортировки (natural sort order) — естественный и реализованный по умолчанию (реализацией метода compareTo интерфейса java.lang.Comparable) способ сравнения двух экземпляров одного класса.
int compareTo(E other) — сравнивает this объект с other и возвращает отрицательное значение если this<other, 0 — если они равны и положительное значение если this>other.
№63 слайд
Содержание слайда: Сравнение коллекций. Comparator, Comparable
Метод compareTo должен выполнять следующие условия.
sgn(x.compareTo(y)) == -sgn(y.compareTo(x))
если x.compareTo(y) выбрасывает исключение, то и y.compareTo(x) должен выбрасывать то же исключение
если x.compareTo(y)>0 и y.compareTo(z)>0, тогда x.compareTo(z)>0
если x.compareTo(y)==0, и x.compareTo(z)==0, то и y.compareTo(z)==0
x.compareTo(y)==0, тогда и только тогда, когда x.equals(y) ; (правило рекомендуемо но не обязательно)
№69 слайд
Содержание слайда: Сравнение коллекций. Comparator, Comparable
При реализации интерфейса Comparator<T> существует возможность сортировки списка объектов конкретного типа по правилам, определенным для этого типа.
Для этого необходимо реализовать метод int compare(T ob1, T ob2), принимающий в качестве параметров два объекта для которых должно быть определено возвращаемое целое значение, знак которого и определяет правило сортировки.
Этот метод автоматически вызывается методом public static <T> void sort(List<T> list, Comparator<? super T> c) класса Collections, в качестве первого параметра принимающий коллекцию, в качестве второго – объект-comparator, из которого извлекается правило сортировки.
№79 слайд
Содержание слайда: Списки List
public interface List<E> extends Collection<E> {
E get(int index); //возвращает объект, находящийся в позиции index;
E set(int index, E element); //заменяет элемент, находящийся в позиции index объектом element;
boolean add(E element); //добавляет элемент в список
void add(int index, E element); //вставляет элемент element в позицию index, при этом список раздвигается
E remove(int index); //удаляет элемент, находящийся на позиции index
boolean addAll(int index, Collection<? extends E> c); //добавляет все элементы коллекции с в список, начиная с позиции index
№80 слайд
Содержание слайда: Списки List
int indexOf(Object o); //возвращает индекс первого появления элемента o в списке;
int lastIndexOf(Object o); //возвращает индекс последнего появления элемента o в списке;
ListIterator<E> listIterator(); //возвращает итератор на список
ListIterator<E> listIterator(int index); //возвращает итератор на список, установленный на элемент с индексом index
List<E> subList(int from, int to); //возвращает новый список, представляющий собой часть данного (начиная с позиции from до позиции to-1 включительно).
}
№83 слайд
Содержание слайда: Списки List
interface ListIterator<E> extends Iterator{
boolean hasNext() / boolean hasPrevious() // проверка
E next() / E previous () // взятие элемента
int nextIndex() / int previousIndex() // определение индекса
void remove() // удаление элемента
void set(E o) // изменение элемента
void add(E o) // добавление элемента
}
№84 слайд
Содержание слайда: Списки List
ArrayList<E> ─ список на базе массива (реализация List)
Достоинства
Быстрый доступ по индексу
Быстрая вставка и удаление элементов с конца
Недостатки
Медленная вставка и удаление элементов
Аналогичен Vector за исключением потокобезопасности
Применения:
“Бесконечный” массив
Стек
№85 слайд
Содержание слайда: Списки List
Конструкторы ArrayList
ArrayList() ─ пустой список
ArrayList(Collection<? extends E> c) ─ копия коллекции
ArrayList(int initialCapacity) ─ пустой список заданной вместимости
Вместимость ─ реальное количество элементов
Дополнительные методы
void ensureCapacity(int minCapacity) ─ определение вместимости
void trimToSize() ─ “подгонка” вместимости
№86 слайд
Содержание слайда: Списки List
LinkedList<E> ─ двусвязный список (реализация List)
Достоинства
Быстрое добавление и удаление элементов
Недостатки
Медленный доступ по индексу
Рекомендуется использовать, если необходимо часто добавлять элементы в начало списка или удалять внутренний элемент списка
Применения:
Стек
Очередь
Дек
№87 слайд
Содержание слайда: Списки List
Конструкторы LinkedList
LinkedList<E> () //пустой список
LinkedList(Collection<? extends E> c) //копия коллекции
Дополнительные методы
void addFirst(E o) //добавить в начало списка
void addLast(E o) // добавить в конец списка
E removeFirst() // удалить первый элемент
E removeLast() //удалить последний элемент
E getFirst()
E getLast()
№93 слайд
Содержание слайда: Очереди Queue
Кроме базовых методов Collection очередь(Queue) предоставляет дополнительные методы по добавлению, извлечению и проверке элементов.
Чаще всего порядок выдачи элементов соответствует FIFO (first-in, first-out), но в общем случае определяется конкретной реализацией.
Очереди не могут хранить null.
У очереди может быть ограничен размер.
№95 слайд
Содержание слайда: Очереди Queue
public interface Queue<E> extends Collection<E> {
E element(); // возвращает, но не удаляет головной элемент очереди
boolean offer(E o); //добавляет в конец очереди новый элемент и возвращает true, если вставка удалась.
E peek(); // возвращает первый элемент очереди, не удаляя его.
E poll(); // возвращает первый элемент и удаляет его из очереди
E remove(); // возвращает и удаляет головной элемент очереди
}
№98 слайд
Содержание слайда: Очереди Queue
Интерфейс Deque позволяет реализовать двунаправленная очередь, разрешающую вставку и удаление элементов в два конца очереди.
Интерфейс Deque определяет «двунаправленную» очередь и, соответственно, методы доступа к первому и последнему элементам двусторонней очереди.
Методы обеспечивают удаление, вставку и обработку элементов. Каждый из этих методов существует в двух формах.
Одни методы создают исключительную ситуацию в случае неудачного завершения, другие возвращают какое-либо из значений (null или false в зависимости от типа операции).
№99 слайд
Содержание слайда: Очереди Queue
Вторая форма добавления элементов в очередь сделана специально для реализаций Deque, имеющих ограничение по размеру.
Методы addFirst(e), addLast(e) вставляют элементы в начало и в конец очереди соответственно.
Метод add(e) унаследован от интерфейса Queue и абсолютно аналогичен методу addLast(e) интерфейса Deque.
№100 слайд
Содержание слайда: Очереди Queue
ArrayDeque - эффективная реализация интерфейса Deque переменного размера
Конструкторы:
ArrayDeque(); // создает пустую двунаправленную очередь с вместимостью 16 элементов
ArrayDeque(Collection<? extends E> c); // создает двунаправленную очередь из элементов коллекции c в том порядке, в котором они возвращаются итератором коллекции c.
ArrayDeque(int numElements); // создает пустую двунаправленную очередь с вместимостью numElements.
№104 слайд
Содержание слайда: Очереди Queue
PriorityQueue – это класс очереди с приоритетами. По умолчанию очередь с приоритетами размещает элементы согласно естественному порядку сортировки используя Comparable. Элементу с наименьшим значением присваивается наибольший приоритет. Если несколько элементов имеют одинаковый наивысший элемент – связь определяется произвольно.
Также можно указать специальный порядок размещения, используя Comparator
№105 слайд
Содержание слайда: Очереди Queue
Конструкторы PriorityQueue:
PriorityQueue(); // создает очередь с приоритетами начальной емкостью 11, размещающую элементы согласно естественному порядку сортировки (Comparable).
PriorityQueue(Collection<? extends E> c);
PriorityQueue(int initialCapacity);
PriorityQueue(int initialCapacity, Comparator<? super E> comparator);
PriorityQueue(PriorityQueue<? extends E> c);
PriorityQueue(SortedSet<? extends E> c);
№110 слайд
Содержание слайда: Карты отображений Map
Интерфейс Map работает с наборами пар объектов «ключ-значение»
Все ключи в картах уникальны.
Уникальность ключей определяет реализация метода equals(…).
Для корректной работы с картами необходимо переопределить методы equals(…) и hashCode(), допускается добавление объектов без переопределения этих методов, но найти эти объекты в Map вы не сможете.
№112 слайд
Содержание слайда: Карты отображений Map
public interface Map<K,V> {
V put(K key, V value); // запись
V get(Object key); // получение значение
V remove(Object key); // удаление
boolean containsKey(Object key); // наличие ключа
boolean containsValue(Object value); // наличие значения
int size(); // размер отображения
boolean isEmpty(); // проверка на пустоту
void putAll(Map<? extends K, ? extends V> m); // добавление всех пар
void clear(); // полная очистка
public Set<K> keySet(); // множество ключей
public Collection<V> values(); // коллекция значений
public Set<Map.Entry<K,V>> entrySet(); // множество пар
}
№113 слайд
Содержание слайда: Карты отображений Map
public static interface Map.Entry<K,V> {
boolean equals(Object o); // сравнивает объект о с сущностью this на равенство
K getKey(); // возвращает ключ карты отображения
V getValue(); // возвращает значение карты отображения
int hashCode(); // возвращает hash-код для карты отображения
V setValue(V value); // устанавливает значение для карты отображения
}
№114 слайд
Содержание слайда: Карты отображений Map
public interface SortedMap<K,V> extends Map<K,V>{
Comparator<? super K> comparator(); // возвращает компаратор, используемый для упорядочивания ключей иди null, если используется естественный порядок сортировки
Set<Map.Entry<K,V>> entrySet(); // возвращает множество пар
K firstKey(); // минимальный ключ
SortedMap<K,V> headMap(K toKey); // отображение ключей меньших toKey
Set<K> keySet(); // возвращает множество ключей
K lastKey(); // максимальный ключ
SortedMap<K,V> subMap(K fromKey, K toKey); // отображение ключей меньших toKey и больше либо равных fromKey
SortedMap<K,V> tailMap(K fromKey); // отображение ключей больших либо равных fromKey
Collection<V> values(); // возвращает коллекцию всех значений
}
№119 слайд
Содержание слайда: Карты отображений Map
HashMap – неотсортированная и неупорядоченная карта, эффективность работы HashMap зависит от того, насколько эффективно реализован метод hashCode().
HashMap может принимать в качестве ключа null, но такой ключ может быть только один, значений null может быть сколько угодно.
№121 слайд
Содержание слайда: Карты отображений Map
TreeMap –хранит элементы в порядке сортировки.
По умолчанию TreeMap сортирует элементы по возрастанию от первого к последнему, также порядок сортировки может задаваться реализацией интерфейсов Comparator и Comparable.
Реализация Comparator передается в конструктор TreeMap, Comparable используется при добавлении элемента в карту.
№143 слайд
Содержание слайда: Унаследованные коллекции
Унаследованные коллекции (Legacy Collections) – это коллекции языка Java 1.0/1.1
В ряде распределенных приложений, например с использованием сервлетов, до сих пор применяются унаследованные коллекции, более медленные в обработке, но при этом потокобезопасные, существовавшие в языке Java с момента его создания.
№145 слайд
Содержание слайда: Унаследованные коллекции
Vector –устаревшая версия ArrayList, его функциональность схожа с ArrayList за исключением того, что ключевые методы Vector синхронизированы для безопасной работы с многопоточностью. Из-за того что методы Vector синхронизированы, Vector работает медленее чем ArrayList.
Конструкторы класса Vector
Vector()
Vector(Collection<? extends E> c).
Vector(int initialCapacity)
Vector(int initialCapacity, int capacityIncrement)
№150 слайд
Содержание слайда: Унаследованные коллекции
Класс Stack позволяет создавать очередь типа last-in-first-out (LIFO)
public class Stack<E> extends Vector<E> {
public boolean empty();
public synchronized E peek();
public synchronized E pop();
public E push(E object);
public synchronized int search(Object o);
}
№152 слайд
Содержание слайда: Унаследованные коллекции
Hashtable – после модификации в JDK 1.2 реализует интерфейс Map. Порядок следования пар ключ/значение не определен.
Конструкторы Hashtable
Hashtable() ;
Hashtable(int initialCapacity) ;
Hashtable(int initialCapacity, float loadFactor) ;
Hashtable(Map<? extends K,? extends V> t);
№155 слайд
Содержание слайда: Унаследованные коллекции
Класс Properties предназначен для хранения набора свойств (параметров).
Методы
String getProperty(String key)
String getProperty(String key,String defaultValue)
позволяют получить свойство из набора.
С помощью метода
setProperty(String key, String value)
это свойство можно установить.
№160 слайд
Содержание слайда: Унаследованные коллекции
Класс BitSet предназначен для работы с последовательностями битов.
Каждый компонент. этой коллекции может принимать булево значение, которое обозначает установлен бит или нет.
Содержимое BitSet может быть модифицировано содержимым другого BitSet с использованием операций AND, OR или XOR (исключающее или).
BitSet имеет текущий размер (количество установленных битов) может динамически изменятся.
№161 слайд
Содержание слайда: Унаследованные коллекции
По умолчанию все биты в наборе устанавливаются в 0 (false).
Установка и очистка битов в BitSet осуществляется методами set(int index) и clear(int index).
Метод int length() возвращает "логический" размер набора битов, int size() возвращает количество памяти занимаемой битовой последовательностью BitSet.
№164 слайд
Содержание слайда: Коллекции для перечислений
Абстрактный класс EnumSet<E extends Enum<E>> (наследуется от абстрактного класса AbstractSet) - специально реализован для работы с типами enum.
Все элементы такой коллекции должны принадлежать единственному типу enum, определенному явно или неявно.
Внутренне множество представимо в виде вектора битов, обычно единственного long.
Множества нумераторов поддерживают перебор по диапазону из нумераторов.
Скорость выполнения операций над таким множеством очень высока, даже если в ней участвует большое количество элементов.
№165 слайд
Содержание слайда: Коллекции для перечислений
Создание EnumSet
EnumSet<T> EnumSet.noneOf(T.class); // cоздает пустое множество нумерованных констант с указанным типом элемента
EnumSet<T> EnumSet.allOf(T.class); // создает множество нумерованных констант, содержащее все элементы указанного типа
EnumSet<T> EnumSet.of(e1, e2, …); // создает множество, первоначально содержащее указанные элементы
EnumSet<T> EnumSet.copyOf(EnumSet<T> s);
EnumSet<T> EnumSet.copyOf(Collection<T> t);
№166 слайд
Содержание слайда: Коллекции для перечислений
EnumSet<T> EnumSet.complementOf(EnumSet<T> s); // создается множество, содержащее все элементы, которые отсутствуют в указанном множестве
EnumSet<T> range(T from, T to); // создает множество из элементов, содержащихся в диапазоне, определенном двумя элементами
При передаче вышеуказанным методам в качестве параметра null будет сгенерирована исключительная ситуация NullPointerException
№168 слайд
Содержание слайда: Коллекции для перечислений
EnumMap - высоко производительное отображение (map). В качестве ключей используются элементы перечисления, что позволяет реализовывать EnumMap на базе массива. Null ключи запрещены. Null значения допускаются. Не синхронизировано. Все основные операции с EnumMap совершаются за постоянное время. Как правило EnumMap работает быстрее, чем HashMap.
Создание EnumMap
EnumMap<K, V>(K.class);
EnumMap<K, V>(EnumMap<K, V>);
EnumMap<K, V>(Map<K, V>);
Скачать все slide презентации Java. SE. 06. Generic and collections одним архивом:
-
5. Java collections and Generics. 3. Generics
-
Generic Collections Java Core
-
Mathematical functions, characters, and strings. Introduction to Java Programming
-
Виключні ситуації. Узагальнене програмування на мові Java (Generics)
-
Collections. Generics
-
Java SE 4. Collections. Иерархия интерфейсов
-
Internet and Java Foundations, Programming and Practice
-
Java Collections Framework
-
Class and Object. Java Core
-
Программирование на Java. Параметризированные типы. Обобщения, Generics. (Лекция 6. 1)