Core Java - Java Collections Framework Tutorial (Chapter 14)
Java Core. Lecture# 4. Collections.
-
Upload
anton-moiseenko -
Category
Software
-
view
528 -
download
5
Transcript of Java Core. Lecture# 4. Collections.
![Page 1: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/1.jpg)
Язык программирования
JAVA
Лекция# 4
Структуры данных в Java
Моисеенко Антон[email protected]
СПГУАПКафедра Информационно-Сетевых Технологий
![Page 2: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/2.jpg)
Содержание курса
1. Коллекции
2. Множества
3. Списки
4. Очереди и деки
5. Отображения
6. Заключение
![Page 3: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/3.jpg)
Коллекции
■ Коллекция ─ неупорядоченный
набор элементов
■ Интерфейс Collection
![Page 4: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/4.jpg)
Коллекции в Java
■ «Платформы Java содержат набор готовых классов, реализующих механизмы работы со структурами данных
■ Такие классы называются коллекциями (collections)
■ Хотя обработка массивов происходит быстрее, в ряде случаев требуется использовать коллекции
![Page 5: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/5.jpg)
Предпосылки использования
■ Необходимость динамического изменения размера структуры данных
■ Динамическое добавление или удаление элемента
■ Хранение разнотипных элементов (объектов)
■ Извлечение и манипуляция данными из БД
■ Хранение и работа со сложными структурами данных (деревьями, списками, стеками, хеш- таблицами и т.д.) и т.п.
![Page 6: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/6.jpg)
Базовые интерфейсы и
классы
■ Интерфейс Collection предназначен для хранения однородных элементов. Его расширяют интерфейсы:
■ List – список ■ Set – множество ■ Queue – очередь
■ Интерфейс Map предназначен для создания коллекций, хранящих пары «ключ-значение». Его реализуют классы:
■ HashMap■ IdentityHashMap ■ TreeMap
![Page 7: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/7.jpg)
Интерфейс Collection
![Page 8: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/8.jpg)
Методы интерфейса
Collection
■ boolean add(Object o) – Добавляет элемент в коллекцию; возвращает true если элемент был добавлен, и false, если коллекция не позволяет сохранять дубликаты, а добавляемый элемент таковым является.
■ boolean addAll(Collection coll) – Добавляет все элементы в коллекцию; возвращает true если какой-либо элемент был добавлен.
■ void clear() – Удаляет из коллекции все элементы. При этом те элементы, на кот. имеются ссылки у других элементов, не удаляются из памяти.
■ boolean contains(Object o) – Возвращает true если коллекция содержит заданный элемент.
![Page 9: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/9.jpg)
Методы интерфейса
Collection(продолжение)
▪ boolean containsAll(Collection<?> coll) – Возвращает true если коллекция содержит все элементы из coll.
▪ boolean equals(Object o) – Возвращает true если сравниваемые коллекции равны.
▪ int hashCode() – Возвращает значение хэш кода для данной коллекции. Для любого класса, для которого переопределен метод Object.equals() должен быть переопределен метод Object.hashCode()
▪ boolean isEmpty() – Возвращает true если коллекция не содержит элементов.
![Page 10: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/10.jpg)
Методы интерфейса
Collection(продолжение)
■ Iterator iterator() – Возвращает ссылку на объект Iterator, который позволяет выполнить эффективное, последовательное прохождение по всем элементам коллекции.
■ boolean remove(Object o) – Удаляет из коллекции одиночный экземпляр элемента o; возвращает true, если коллекция содержит такой элемент.
■ boolean removeAll(Collection<?> coll) – Удаляет их коллекции все элементы, которые также находятся в коллекции coll; возвращает true если какой-либо элемент удален. Никакие элементы в результирующей коллекции не будут равны элементам коллекции coll. Параметр coll необязателен.
![Page 11: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/11.jpg)
Методы интерфейса
Collection(продолжение)
■ boolean retainAll(Collection<?> coll) – Оставляет в коллекции только те из входящих в неё элементов, которые входят в коллекции coll; возвращает true, если исходная коллекция изменена.
■ int size() – Возвращает количество элементов в коллекции.
■ Object[] toArray() – Возвращает массив, содержащий все элементы данной коллекции.
![Page 12: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/12.jpg)
Методы интерфейса
Collection(продолжение)
■ <T> T[] toArray(T[] a) – Возвращает массив, содержащий все элементы данной коллекции; тип возвращаемого массива таков, как тип заданного массива. Если коллекция вмещается в заданный массив, она возвращается в массиве. В противном случае размещается массив с типом времени выполнения для заданного массива и размером равным размеру коллекции.
■ String toString() – Возвращает строку со списком элементов коллекции в квадратных скобках, через запятую и пробел
![Page 13: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/13.jpg)
Иерархия классов, реализующих
интерфейсы Collection
![Page 14: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/14.jpg)
Иерархия классов и
интерфейсов Map
![Page 15: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/15.jpg)
Специфика хранения
элементов
■ Коллекции могут хранить только ссылки на объекты.
■ Примитивные типы могут быть сохранены в коллекции и извлечены из неё за счёт автоматических операций упаковки и распаковки в классы-оболочки (Boxing и Unboxing, с Java SE 5)
■ Начиная с версии Java SE 5, коллекции стали типизированными и при их создании рекомендуется указывать тип объектов, кот. будут храниться в ней
ArrayList<String> arr = new ArrayList<String>();
![Page 16: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/16.jpg)
Пример. Вывод коллекции на экран
public void dump(Collection c) {
for (Iterator i = c.iterator(); i.hasNext(); ) {
String word = (String) i.next();
System.out.print(word + ", ");
}
System.out.println();
}
![Page 17: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/17.jpg)
Преобразование в массив
■ Object[] toArray() ─ создает новый массив
■ Object[] toArray(Object[] a) ─ использует переданный
массив
■ Пример использования
String[] i = (String[])c.toArray(new String[c.size()]);
![Page 18: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/18.jpg)
Итераторы
■ Итератор ─ обход коллекции
■ Интерфейс Iterator
■ Метод Iterator Collection.iterator()
![Page 19: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/19.jpg)
Методы итераторов
■ hasNext() ─ определение наличия следующего
элемента
■ next() ─ взятие следующего элемента
■ remove() ─ удаление элемента
■ Исключения
○ NoSuchElementException ─ бросается при
достижении конца коллекции
○ ConcurrentModificationException ─ бросается при
изменении коллекции
![Page 20: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/20.jpg)
Применение итераторов
■ Обход коллекцииfor(Iterator i = c.iterator(); i.hasNext(); ) {
Object element = i.next();
...
}
■ Фильтрование коллекцииfor(Iterator i = c.iterator(); i.hasNext(); ) {
if (!((String)i.next()).equals(“Bla-bla”)) i.remove();
}
![Page 21: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/21.jpg)
Пример работы с итераторами
List compon = Arrays.asList(this.getComponents());
for (Iterator iter=compon.iterator(); iter.hasNext(); ) { Object elem = (Object) iter.next(); System.out.println(“Компонент: ”, elem.toString();
}
![Page 22: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/22.jpg)
Множества
■ Множество ─ коллекция без
повторяющихся элементов
■ Интерфейс Set
![Page 23: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/23.jpg)
Интерфейс Set
![Page 24: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/24.jpg)
Сравнение элементов
■ Метод Object.equals(Object object)
■ Рефлексивность
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
![Page 25: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/25.jpg)
Операции над множествами
■ addAll(Collection c) – объединение
множеств
■ retainAll(Collection c) – пересечение
множеств
■ containsAll(Collection c) – проверка
вхождения
■ removeAll(Collection c) – разность
множеств
![Page 26: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/26.jpg)
Классы, реализующие Set
■ HashSet ─ множество на основе хэша
■ LinkedHashSet ─ множество на основе
хэша c сохранение порядка обхода
■ TreeSet - коллекция, которая хранит
свои элементы в виде упорядоченного
по значениям дерева.
![Page 27: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/27.jpg)
Конструкторы HashSet
■ HashSet() ─ пустое множество
■ HashSet(Collection c) ─ элементы
коллекции
■ HashSet(int initialCapacity) ─
начальная вместимость
■ HashSet(int initialCapacity, double
loadFactor) ─ начальная
вместимость и степень заполнения
![Page 28: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/28.jpg)
Вычисление хэшей
■ Метод Object.hashCode()
■ Устойчивость hashCode() не
изменяется, если объект не
изменяется
■ Согласованность с equals
o1.equals(o2) => o1.hashCode() ==
o2.hashCode()
![Page 29: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/29.jpg)
Списки
■ Представляет собой неупорядоченную коллекцию, в которой
допустимы дублирующие значения
■ Классы, реализующие List:
■ LinkedList – связанный список, можно вставлять элементы
только в начало и конец
■ ArrayList – динамический массив с произвольной вставкой и
удалением элементов
■ Элементы, находящиеся в коллекции List проиндексированы
![Page 30: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/30.jpg)
Списки
![Page 31: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/31.jpg)
Методы интерфейса List
■ <T>Elem get(int i) – Возвращает ссылку на элемент
списка под номером i
■ int indexOf(<T> obj) – Возвращает индекс (номер)
элемента obj. Если объект не найден, возвращает -
1.
■ ListIterator listIterator([int i]) – Возвращает итератор
списка с дополнительными возможностями (по
сравнению с Iterator). Если указан параметр i, то
итератор будет позиционирован на элемент с
индексом i
![Page 32: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/32.jpg)
Методы интерфейса List
■ boolean remove(int i) – удаляет из списка элемент с
номером i.
■ set(int i, <T> obj) – заменяет элемент с номером i на
указанный элемент obj
■ List subList(i1, i2) – возвращает ссылку на
подсписок, содержащий элементы исходного списка
с номерами от i1 до i2
![Page 33: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/33.jpg)
Методы класса Collections
■ Collections.addAll(c,e1,e2,…,en) – добавляет в
коллекцию c произвольное число элементов e1, …,
en
■ frequency(c, obj) – возвращает число вхождений
элемента obj в коллекцию с
■ reverse(list) – обращает порядок следования
элементов в списке list
■ sort(list) – сортирует список в порядке возрастания
элементов. Сравнение идёт с помощью вызова
метода e1.compareTo(e2) для элементов списка e1,
e2
![Page 34: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/34.jpg)
Итератор по списку
■ Интерфейс ListIterator extends Iterator
■ Метод listIterator()
■ Предыдущий / Следующий элементы
![Page 35: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/35.jpg)
Операции итератора по списку
■ Передвижение
○ hasNext() / hasPrevious() ─ проверка
○ next() / previous() ─ взятие элемента
○ nextIndex() / previousIndex() ─
определение индекса
■ Изменение
○ remove() ─ удаление элемента
○ set(Object e) ─ изменение элемента
○ add(Object e) ─ добавление элемента
![Page 36: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/36.jpg)
Класс ArrayList
■ ArrayList ─ список на базе массива
■ порожден от класса AbstractList для
реализации списка, основанного на
динамически изменяющемся массиве
■ Нет методы addFirst() и addLast(), но есть
метод void add( int index, E element ) для
вставки элемента в произвольную позицию
![Page 37: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/37.jpg)
Класс ArrayList
■ Плюсы
○ Быстрый доступ по индексу
○ Быстрая вставка и удаление элементов с
конца
■ Минусы
○ Медленная вставка и удаление
элементов
![Page 38: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/38.jpg)
Вместимость ArrayList
■ Вместимость ─ реальное количество
элементов
■ Дополнительные методы
○ ensureCapacity(int c) ─ определение
вместимости
○ trimToSize() ─ “подгонка” вместимости
![Page 39: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/39.jpg)
Конструкторы ArrayList
■ ArrayList() ─ пустой список
■ ArrayList(Collection c) ─ копия
коллекции
■ ArrayList(int initialCapacity) ─ пустой
список заданной вместимости
![Page 40: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/40.jpg)
Применения ArrayList
■ “Бесконечный” массив
■ Стек
![Page 41: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/41.jpg)
Пример использования ArrayList
public static void main(String args[]){
String s = "test";
List<String> list = new ArrayList<String>();
list.add( "is" );
list.add( "is" );
list.add( "a" );
list.add( "a" );
list.add( null );
list.add( list.size(), s );
list.add( 0, "This");
// list.add( new Double(12.4) ); ошибка компиляции
System.out.println( list );
displayCollection( list );
}
…
![Page 42: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/42.jpg)
Пример использования ArrayList
Результат:
[This, is, is, a, a, null, test]
The size of the Collection is : 7
This is is a a null test
![Page 43: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/43.jpg)
Класс LinkedList
■ LinkedList ─ двусвязный список
■ Порожден от класса
AbstractSequentialList
■ Реализация связанного
двунаправленного списка – каждый
элемент ссылается на предыдущий и на
последующий элементы
■ Есть методы addFirst() и addLast()
![Page 44: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/44.jpg)
Класс LinkedList
■ Создаётся типизированная коллекция, в которой
могут храниться только элементы типа String:
■ LinkedList<String> list = new LinkedList<String>();
■ Любая попытка внести в список ссылку на объект
другого типа приведет к ошибке компиляции:
■ list.add( new Double(12.4) );
■ Плюсы
○ Быстрое добавление и удаление элементов
■ Минусы
○ Медленный доступ по индексу
![Page 45: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/45.jpg)
Возможности LinkedList
■ Конструкторы
○ LinkedList() ─ пустой список
○ LinkedList(Collection c) ─ копия коллекции
■ Методы
○ addFirst(Object o) – добавить в начало
списка
○ addLast(Object o) – добавить в конец списка
○ removeFirst() – удалить первый элемент
○ removeLast() – удалить последний элемент
![Page 46: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/46.jpg)
Применения LinkedList
■ Стек
■ Очередь
■ Дек
![Page 47: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/47.jpg)
Пример. Вывод LinkedList на
экран
Пример использования LinkedList
import java.util.*;
public class TestList {
public static void main(String args[]){
String s = "test";
LinkedList<String> list = new LinkedList<String>();
list.add( "is" );
list.add( "is" );
list.add( "a" );
list.add( "a" );
list.add( null );
list.addLast( s );
list.addFirst("This");
// list.add( new Double(12.4) ); ошибка компиляции
System.out.println( list );
displayCollection( list );
}
![Page 48: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/48.jpg)
Пример. Вывод LinkedList на
экран
static void displayCollection( Collection<String> items ) {
final String BLANK = " ";
System.out.println("The size of the Collection is : " +items.size());
StringBuilder sb = new StringBuilder();
for( String s : items ) sb.append( s ).append( BLANK );
System.out.println( sb.toString() );
}
}
Результат: [This, is, is, a, a, null, test]
The size of the Collection is : 7
This is is a a null test
![Page 49: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/49.jpg)
Очередь
![Page 50: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/50.jpg)
Очередь
■ Очередь – хранилище элементов для
обработки
■ Интерфейс Queue
■ Свойства очередей
○ Порядок выдачи элементов
определяется конкретной реализацией
○ Очереди не могут хранить null
○ У очереди может быть ограничен
размер
![Page 51: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/51.jpg)
Методы очередей
■ Обычные методы
○ add(Object o) – добавить элемент
■ Бросает UnsupportedOperationException
○ Object element() – вершина очереди
■ Бросает NoSuchElementException
○ Object remove() – удалить элемент из вершины
■ Бросает NoSuchElementException
■ Методы, не бросающие исключений
○ offer(Object o) – добавить элемент
○ Object peek() – вершина очереди
○ Object poll() – удалить элемент из вершины
![Page 52: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/52.jpg)
Отображение
![Page 53: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/53.jpg)
Отображение
■ Отображение ─ множество пар ключ-значение
при уникальности ключа
■ Интерфейс Map
![Page 54: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/54.jpg)
Методы отображений
■ Доступ
○ get(Object k) ─ получение значение
○ put(Object k, Object v) ─ запись
○ remove(Object k) ─ удаление
■ Проверки
○ containsKey(Object k) ─ наличие ключа
○ containsValue(Object v) ─ наличие значения
■ Определения размера
○ size() ─ размер отображения
○ isEmpty() ─ проверка на пустоту
![Page 55: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/55.jpg)
Методы отображений
■ Взятие видов
○ entrySet() ─ множество пар
○ values() ─ коллекция значений
○ keySet() ─ множество ключей
■ Массовые операции
○ putAll(Map map) ─ добавление всех
пар
![Page 56: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/56.jpg)
Пары
■ Пара ─ ключ + значение
■ Интерфейс Map.Entry
■ Методы
○ Object getKey()
○ Object getValue()
○ setValue(Object v)
![Page 57: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/57.jpg)
Классы HashMap и LinkedHashMap
■ HashMap ─ отображение на основе
хэшей
■ LinkedHashMap ─ отображение на
основе хэшей с сохранением
порядка обхода
![Page 58: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/58.jpg)
Конструкторы HashMap
■ HashMap() ─ пустое отображение
■ HashMap(Map m) ─ копия
отображения
■ HashMap(int initialCapacity) ─
начальная вместимость
■ HashMap (int initialCapacity, int
loadFactor) ─ начальная
вместимость и степень заполнения
![Page 59: Java Core. Lecture# 4. Collections.](https://reader031.fdocuments.in/reader031/viewer/2022030402/588b0b411a28abdf3b8b5d9b/html5/thumbnails/59.jpg)
Вопросы?