Содержание
- 2. 2011 © EPAM Systems, RD Dep. Содержание Определение коллекций Интерфейс Collection Множества Set Интерфейс Iterator Сравнение
- 3. ОПРЕДЕЛЕНИЕ КОЛЛЕКЦИЙ 2011 © EPAM Systems, RD Dep.
- 4. Определение коллекций Коллекции – это хранилища, поддерживающие различные способы накопления и упорядочения объектов с целью обеспечения
- 5. Определение коллекций Collections framework - это унифицированная архитектура для представления и манипулирования коллекциями. Collections framework содержит:
- 6. Определение коллекций Интерфейсы коллекций: Collection – вершина иерархии остальных коллекций; List – специализирует коллекции для обработки
- 7. Определение коллекций 2011 © EPAM Systems, RD Dep.
- 8. Определение коллекций 2011 © EPAM Systems, RD Dep.
- 9. Определение коллекций Все конкретные классы Java Collections Framework реализуют Cloneable и Serializable интерфейсы, следовательно, их экземпляры
- 10. Определение коллекций Реализации (Implementations) Конкретные реализации интерфейсов могут быть следующих типов: General-purpose implementations Special-purpose implementations Concurrent
- 11. Определение коллекций General-Purpose Implementations - реализации общего назначения, наиболее часто используемые реализации, HashSet, TreeSet, LinkedHashSet. ArrayList
- 12. Определение коллекций Special-Purpose Implementations - реализации специального назначения, разработаны для использования в специальных ситуациях и предоставляют
- 13. Определение коллекций Concurrent implementations – потоковые реализации ConcurrentHashMap LinkedBlockingQueue ArrayBlockingQueue PriorityBlockingQueue DelayQueue SynchronousQueue LinkedTransferQueue 2011 ©
- 14. Определение коллекций Wrapper implementations – реализация обертки, применяется для реализации нескольких типов в одном, чтобы обеспечить
- 15. Определение коллекций Convenience implementations – удобные реализации, выполнены обычно с использованием реализаций общего назначения и применением
- 16. Определение коллекций Abstract implementations – основа всех реализаций коллекций, которая облегчает создание собственных коллекций. AbstractCollection AbstractSet
- 17. Определение коллекций Алгоритмы (Algorithms) Это методы, которые выполняют некоторые вычисления, такие как поиск, сортировка объектов, реализующих
- 18. ИНТЕРФЕЙС COLLECTION 2011 © EPAM Systems, RD Dep.
- 19. Интерфейс Collection Интерфейс Collection - вершина иерархии коллекций Интерфейс Collection - наименьший набор характеристик, реализуемых всеми
- 20. Интерфейс Collection public interface Collection extends Iterable { boolean equals(Object o); int size(); //возвращает количество элементов
- 21. Интерфейс Collection boolean containsAll(Collection c); //возвращает true, если коллекция содержит все элементы из c; boolean addAll(Collection
- 22. Интерфейс Collection interface Iterable { Iterator iterator(); // возвращает итератор по множеству элементов T } 2011
- 23. Интерфейс Collection Класс AbstractCollection - convenience class, предоставляет частичную реализацию интерфейса Collection, реализует все методы, за
- 24. Интерфейс Collection Некоторые методы интерфейса Collection могут быть не реализованы в подклассах (нет необходимости их реализовывать).
- 25. МНОЖЕСТВА SET 2011 © EPAM Systems, RD Dep.
- 26. Множества Set Множество ─ коллекция без повторяющихся элементов Интерфейс Set содержит методы, унаследованные Collection и добавляет
- 27. Множества Set 2011 © EPAM Systems, RD Dep.
- 28. Множества Set Интерфейс Set заботится об уникальности хранимых объектов, уникальность определятся реализацией метода equals(). 2011 ©
- 29. Множества Set public interface Set extends Collection { int size(); //возвращает количество элементов в множестве boolean
- 30. Множества Set boolean containsAll(Collection c); // возвращает true, если множество содержит все элементы коллекции с boolean
- 31. Множества Set Set также добавляет соглашение на поведение методов equals и hashCode, позволяющих сравнивать множества даже
- 32. Множества Set Правила сравнения на равенство Метод boolean equals(Object o) Рефлексивность o1.equals(o1) Симметричность o1.equals(o2) == e2.equals(o1)
- 33. Множества Set Интерфейс SortedSet из пакета java.util, расширяющий интерфейс Set, описывает упорядоченное множество, отсортированное по естественному
- 34. Множества Set public interface SortedSet extends Set { Comparator comparator(); // возвращает способ упорядочения коллекции; E
- 35. Множества Set Интерфейс NavigableSet добавляет возможность перемещения, "навигации" по отсортированному множеству. 2011 © EPAM Systems, RD
- 36. Множества Set public interface NavigableSet extends SortedSet { E lower(E e); E floor(E e); E higher(E
- 37. Множества Set // методы, позволяющие получить подмножество элементов. Параметры fromElement и toElement ограничивают подмножество снизу и
- 38. Множества Set Класс AbstractSet - convenience class , который наследуется от AbstractCollection и реализует интерфейс Set.
- 39. Множества Set HashSet – неотсортированная и неупорядоченная коллекция, для вставки элемента используются методы hashCode() и equals(…).
- 40. Множества Set Конструкторы HashSet HashSet() ─ создает пустое множество; HashSet(Collection c) ─ создает новое множество с
- 41. Множества Set Для эффективности объекты, добавляемые в множество должны реализовывать hashСode. Метод int hashCode() - возвращает
- 42. Множества Set. Example 01 2011 © EPAM Systems, RD Dep. [San Francisco, New York, Paris, Berling,
- 43. Множества Set LinkedHashSet ─ множество на основе хэша c сохранением порядка обхода. 2011 © EPAM Systems,
- 44. Множества Set. Example 02 Результат: 2011 © EPAM Systems, RD Dep. package _java._se._06.set; import java.util.LinkedHashSet; import
- 45. Множества Set TreeSet – реализует интерфейс NavigableSet , который поддерживает элементы в отсортированном по возрастанию порядке.
- 46. Множества Set Используется в том случае, если необходимо использовать операции, определенные в интерфейсе SortedSet, NavigableSet или
- 47. Множества Set Конструкторы TreeSet: TreeSet(); TreeSet(Collection c); TreeSet(Comparator c); TreeSet(SortedSet s); 2011 © EPAM Systems, RD
- 48. Множества Set Класс TreeSet содержит методы по извлечению первого и последнего (наименьшего и наибольшего) элементов E
- 49. Множества Set. Example 03 2011 © EPAM Systems, RD Dep. package _java._se._06.set; import java.util.HashSet; import java.util.Set;
- 50. Множества Set. Example 03 Результат: 2011 © EPAM Systems, RD Dep. [Berling, London, New York, Paris,
- 51. ИНТЕРФЕЙС ITERATOR 2011 © EPAM Systems, RD Dep.
- 52. Интерфейс Iterator Для обхода коллекции можно использовать: for-each Конструкция for-each является краткой формой записи обхода коллекции
- 53. Интерфейс Iterator Интерфейс Iterator используется для доступа к элементам коллекции Iterator iterator() – возвращает итератор 2011
- 54. Интерфейс Iterator public interface Iterator { boolean hasNext(); // возвращает true при наличии следующего элемента, а
- 55. Интерфейс Iterator Исключения: NoSuchElementException ─ генерируется при достижении конца коллекции ConcurrentModificationException ─ генерируется при изменении коллекции
- 56. Интерфейс Iterator. Example 04 2011 © EPAM Systems, RD Dep. package _java._se._06.set; import java.util.HashSet; import java.util.Iterator;
- 57. Интерфейс Iterator. Example 04 Результат: 2011 © EPAM Systems, RD Dep. [San Francisco, New York, Paris,
- 58. Интерфейс Iterator Используйте Iterator вместо for-each если вам необходимо удалить текущий элемент. Конструкция for-each скрывает итератор,
- 59. Интерфейс Iterator Чтобы удалить все экземпляры определенного элемента е из коллекции с воспользуйтесь следующим кодом: Удалить
- 60. СРАВНЕНИЕ ОБЪЕКТОВ. COMPATATOR, COMPARABLE 2011 © EPAM Systems, RD Dep.
- 61. Сравнение коллекций. Comparator, Comparable Естественный порядок сортировки (natural sort order) — естественный и реализованный по умолчанию
- 62. Сравнение коллекций. Comparator, Comparable Реализация Comparable позволяет: Вызвать Collections.sort иCollections.binarySearch Вызывать Arrays.sort и Arrays.binarySearch Использовать такие
- 63. Сравнение коллекций. Comparator, Comparable Метод compareTo должен выполнять следующие условия. sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) если x.compareTo(y) выбрасывает
- 64. Сравнение коллекций. Comparator, Comparable. Example 05 2011 © EPAM Systems, RD Dep. package _java._se._06.comparable; public class
- 65. Сравнение коллекций. Comparator, Comparable. Example 05 2011 © EPAM Systems, RD Dep. public int getAge() {
- 66. Сравнение коллекций. Comparator, Comparable. Example 05 2011 © EPAM Systems, RD Dep. package _java._se._06.comparable; import java.util.Arrays;
- 67. Сравнение коллекций. Comparator, Comparable. Example 05 2011 © EPAM Systems, RD Dep. System.out.println("Natural Order"); for (int
- 68. Сравнение коллекций. Comparator, Comparable. Example 05 Результат: 2011 © EPAM Systems, RD Dep. Natural Order Goodyear,
- 69. Сравнение коллекций. Comparator, Comparable При реализации интерфейса Comparator существует возможность сортировки списка объектов конкретного типа по
- 70. Сравнение коллекций. Comparator, Comparable java.util.Comparator — содержит два метода: int compare(T o1, T o2) — сравнение,
- 71. Сравнение коллекций. Comparator, Comparable. Example 06 2011 © EPAM Systems, RD Dep. package _java._se._06.comparator; public abstract
- 72. Сравнение коллекций. Comparator, Comparable. Example 06 2011 © EPAM Systems, RD Dep. package _java._se._06.comparator; public class
- 73. Сравнение коллекций. Comparator, Comparable. Example 06 2011 © EPAM Systems, RD Dep. package _java._se._06.comparator; import java.util.Comparator;
- 74. Сравнение коллекций. Comparator, Comparable. Example 06 2011 © EPAM Systems, RD Dep. package _java._se._06.comparator; import java.util.Comparator;
- 75. Сравнение коллекций. Comparator, Comparable. Example 06 Результат: 2011 © EPAM Systems, RD Dep. A sorted set
- 76. СПИСКИ LIST 2011 © EPAM Systems, RD Dep.
- 77. Списки List Список - упорядоченная коллекция (иногда называется sequence) Список может содержать повторяющиеся элементы. Интерфейс List
- 78. Списки List 2011 © EPAM Systems, RD Dep.
- 79. Списки List public interface List extends Collection { E get(int index); //возвращает объект, находящийся в позиции
- 80. Списки List int indexOf(Object o); //возвращает индекс первого появления элемента o в списке; int lastIndexOf(Object o);
- 81. Списки List Класс AbstractList предоставляет частичную реализацию для интерфейса List. Класс AbstractSequentialList расширяет AbstractList, чтобы предоставить
- 82. Списки List ListIterator - это итератор для списка 2011 © EPAM Systems, RD Dep.
- 83. Списки List interface ListIterator extends Iterator{ boolean hasNext() / boolean hasPrevious() // проверка E next() /
- 84. Списки List ArrayList ─ список на базе массива (реализация List) Достоинства Быстрый доступ по индексу Быстрая
- 85. Списки List Конструкторы ArrayList ArrayList() ─ пустой список ArrayList(Collection c) ─ копия коллекции ArrayList(int initialCapacity) ─
- 86. Списки List LinkedList ─ двусвязный список (реализация List) Достоинства Быстрое добавление и удаление элементов Недостатки Медленный
- 87. Списки List Конструкторы LinkedList LinkedList () //пустой список LinkedList(Collection c) //копия коллекции Дополнительные методы void addFirst(E
- 88. Списки List. Example 07 2011 © EPAM Systems, RD Dep. package _java._se._06.list; import java.util.ArrayList; import java.util.LinkedList;
- 89. Списки List. Example 07 2011 © EPAM Systems, RD Dep. LinkedList linkedList = new LinkedList (arrayList);
- 90. Списки List. Example 07 Результат: 2011 © EPAM Systems, RD Dep. A list of integers in
- 91. ОЧЕРЕДИ QUEUE 2011 © EPAM Systems, RD Dep.
- 92. Очереди Queue Очередь, предназначенная для размещения элемента перед его обработкой. Расширяет коллекцию методами для вставки, выборки
- 93. Очереди Queue Кроме базовых методов Collection очередь(Queue) предоставляет дополнительные методы по добавлению, извлечению и проверке элементов.
- 94. Очереди Queue 2011 © EPAM Systems, RD Dep.
- 95. Очереди Queue public interface Queue extends Collection { E element(); // возвращает, но не удаляет головной
- 96. Очереди Queue Класс AbstractQueue – реализует методы интерфейса Queue: size() offer(Object o) peek() poll() iterator() 2011
- 97. Очереди Queue. Example 08 2011 © EPAM Systems, RD Dep. package _java._se._06.queue; public class QueueExample {
- 98. Очереди Queue Интерфейс Deque позволяет реализовать двунаправленная очередь, разрешающую вставку и удаление элементов в два конца
- 99. Очереди Queue Вторая форма добавления элементов в очередь сделана специально для реализаций Deque, имеющих ограничение по
- 100. Очереди Queue ArrayDeque - эффективная реализация интерфейса Deque переменного размера Конструкторы: ArrayDeque(); // создает пустую двунаправленную
- 101. Очереди Queue. Example 09 Результат: 2011 © EPAM Systems, RD Dep. package _java._se._06.queue; public class DequeExample
- 102. Очереди Queue. Example 10 2011 © EPAM Systems, RD Dep. package _java._se._06.queue; import java.util.ArrayDeque; import java.util.Deque;
- 103. Очереди Queue. Example 10 2011 © EPAM Systems, RD Dep. D C B A A B
- 104. Очереди Queue PriorityQueue – это класс очереди с приоритетами. По умолчанию очередь с приоритетами размещает элементы
- 105. Очереди Queue Конструкторы PriorityQueue: PriorityQueue(); // создает очередь с приоритетами начальной емкостью 11, размещающую элементы согласно
- 106. Очереди Queue. Example 11 2011 © EPAM Systems, RD Dep. package _java._se._06.queue; import java.util.Collections; import java.util.PriorityQueue;
- 107. Очереди Queue. Example 11 2011 © EPAM Systems, RD Dep. PriorityQueue queue2 = new PriorityQueue (4,
- 108. Очереди Queue. Example 11 Результат: 2011 © EPAM Systems, RD Dep. Priority queue using Comparable: Georgia
- 109. КАРТЫ ОТОБРАЖЕНИЙ MAP 2011 © EPAM Systems, RD Dep.
- 110. Карты отображений Map Интерфейс Map работает с наборами пар объектов «ключ-значение» Все ключи в картах уникальны.
- 111. Карты отображений Map 2011 © EPAM Systems, RD Dep.
- 112. Карты отображений Map public interface Map { V put(K key, V value); // запись V get(Object
- 113. Карты отображений Map public static interface Map.Entry { boolean equals(Object o); // сравнивает объект о с
- 114. Карты отображений Map public interface SortedMap extends Map { Comparator comparator(); // возвращает компаратор, используемый для
- 115. Карты отображений Map 2011 © EPAM Systems, RD Dep. public interface NavigableMap extends SortedMap { //
- 116. Карты отображений Map 2011 © EPAM Systems, RD Dep. // Методы pollFirstEntry и pollLastEntry возвращают соответственно
- 117. Карты отображений Map 2011 © EPAM Systems, RD Dep. // Методы, позволяющие получить набор ключей, отсортированных
- 118. Карты отображений Map 2011 © EPAM Systems, RD Dep. // Методы, позволяющие извлечь из карты подмножество.
- 119. Карты отображений Map HashMap – неотсортированная и неупорядоченная карта, эффективность работы HashMap зависит от того, насколько
- 120. Карты отображений Map LinkedHashMap –хранит элементы в порядке вставки. LinkedHashMap добавляет и удаляет объекты медленнее чем
- 121. Карты отображений Map TreeMap –хранит элементы в порядке сортировки. По умолчанию TreeMap сортирует элементы по возрастанию
- 122. Карты отображений Map. Example 12 2011 © EPAM Systems, RD Dep. package _java._se._06.map; import java.util.HashMap; import
- 123. Карты отображений Map. Example 12 2011 © EPAM Systems, RD Dep. Map treeMap = new TreeMap
- 124. Карты отображений Map. Example 12 2011 © EPAM Systems, RD Dep. Display entries in HashMap {Smith=30,
- 125. Карты отображений Map. Example 13 2011 © EPAM Systems, RD Dep. package _java._se._06.map; import java.util.Iterator; import
- 126. Карты отображений Map. Example 13 2011 © EPAM Systems, RD Dep. java.runtime.name -- Java(TM) SE Runtime
- 127. КЛАСС COLLECTIONS 2011 © EPAM Systems, RD Dep.
- 128. Класс Collections Collections — класс, состоящий из статических методов, осуществляющих различные служебные операции над коллекциями. 2011
- 129. Класс Collections 2011 © EPAM Systems, RD Dep.
- 130. Класс Collections 2011 © EPAM Systems, RD Dep.
- 131. Класс Collections 2011 © EPAM Systems, RD Dep. .
- 132. Класс Collections. Example 14 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collections;
- 133. Класс Collections. Example 15 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collections;
- 134. Класс Collections. Example 16 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collections;
- 135. Класс Collections. Example 17 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collections;
- 136. Класс Collections. Example 18 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collections;
- 137. Класс Collections. Example 19 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collections;
- 138. Класс Collections. Example 20 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collection;
- 139. Класс Collections. Example 21 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collection;
- 140. Класс Collections. Example 22 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.Arrays; import java.util.Collection;
- 141. Класс Collections. Example 23 2011 © EPAM Systems, RD Dep. package _java._se._06.collections; import java.util.ArrayList; import java.util.Arrays;
- 142. УНАСЛЕДОВАННЫЕ КОЛЛЕКЦИИ 2011 © EPAM Systems, RD Dep.
- 143. Унаследованные коллекции Унаследованные коллекции (Legacy Collections) – это коллекции языка Java 1.0/1.1 В ряде распределенных приложений,
- 144. Унаследованные коллекции 2011 © EPAM Systems, RD Dep.
- 145. Унаследованные коллекции Vector –устаревшая версия ArrayList, его функциональность схожа с ArrayList за исключением того, что ключевые
- 146. Унаследованные коллекции. Example 24 2011 © EPAM Systems, RD Dep. package _java._se._06.legacy; import java.util.Enumeration; import java.util.Vector;
- 147. Унаследованные коллекции. Example 24 2011 © EPAM Systems, RD Dep. v.addElement(new Double(6.08)); v.addElement(new Integer(7)); System.out.println("Current capacity:
- 148. Унаследованные коллекции. Example 24 2011 © EPAM Systems, RD Dep. // enumerate the elements in the
- 149. Enumeration – объекты классов, реализующих данный интерфейс, используются для предоставления однопроходного последовательного доступа к серии объектов:
- 150. Унаследованные коллекции Класс Stack позволяет создавать очередь типа last-in-first-out (LIFO) public class Stack extends Vector {
- 151. Унаследованные коллекции. Example 25 2011 © EPAM Systems, RD Dep. package _java._se._06.legacy; import java.util.Stack; import java.util.StringTokenizer;
- 152. Унаследованные коллекции Hashtable – после модификации в JDK 1.2 реализует интерфейс Map. Порядок следования пар ключ/значение
- 153. Унаследованные коллекции. Example 26 2011 © EPAM Systems, RD Dep. package _java._se._06.legacy; import java.util.Collection; import java.util.Enumeration;
- 154. Унаследованные коллекции. Example 26 2011 © EPAM Systems, RD Dep. c.remove("One"); Enumeration e = ht.elements(); while
- 155. Унаследованные коллекции Класс Properties предназначен для хранения набора свойств (параметров). Методы String getProperty(String key) String getProperty(String
- 156. Унаследованные коллекции Метод load(InputStream inStream) позволяет загрузить набор свойств из входного потока. Параметры представляют собой строки
- 157. Унаследованные коллекции. Example 27 2011 © EPAM Systems, RD Dep. package _java._se._06.legacy; import java.util.Iterator; import java.util.Properties;
- 158. Унаследованные коллекции. Example 27 2011 © EPAM Systems, RD Dep. // Show all states and capitals
- 159. Унаследованные коллекции. Example 27 2011 © EPAM Systems, RD Dep. Результат: The capital of Missouri is
- 160. Унаследованные коллекции Класс BitSet предназначен для работы с последовательностями битов. Каждый компонент. этой коллекции может принимать
- 161. Унаследованные коллекции По умолчанию все биты в наборе устанавливаются в 0 (false). Установка и очистка битов
- 162. Унаследованные коллекции. Example 28 2011 © EPAM Systems, RD Dep. package _java._se._06.legacy; import java.util.BitSet; public class
- 163. КОЛЛЕКЦИИ ДЛЯ ПЕРЕЧИСЛЕНИЙ 2011 © EPAM Systems, RD Dep.
- 164. Коллекции для перечислений Абстрактный класс EnumSet > (наследуется от абстрактного класса AbstractSet) - специально реализован для
- 165. Коллекции для перечислений Создание EnumSet EnumSet EnumSet.noneOf(T.class); // cоздает пустое множество нумерованных констант с указанным типом
- 166. Коллекции для перечислений EnumSet EnumSet.complementOf(EnumSet s); // создается множество, содержащее все элементы, которые отсутствуют в указанном
- 167. Коллекции для перечислений. Example 29 2011 © EPAM Systems, RD Dep. package _java._se._06.enum_; import java.util.EnumSet; enum
- 168. Коллекции для перечислений EnumMap - высоко производительное отображение (map). В качестве ключей используются элементы перечисления, что
- 169. Коллекции для перечислений Создать объект EnumMap: Создать синхронизированный объект EnumMap: 2011 © EPAM Systems, RD Dep.
- 170. Коллекции для перечислений. Example 30 2011 © EPAM Systems, RD Dep. package _java._se._06.enum_; import java.util.EnumMap; enum
- 171. Коллекции для перечислений 2011 © EPAM Systems, RD Dep. Результат: S:S M:M L:L XL:XL XXL:XXL XXXL:XXXL
- 173. Скачать презентацию