Презентация collections fixed

Скачать презентацию  collections fixed Скачать презентацию collections fixed

collections_fixed.ppt

  • Размер: 713 Кб
  • Количество слайдов: 76

Описание презентации Презентация collections fixed по слайдам

 Collections Framework Java Advanced Collections Framework Java Advanced

Java Advanced / Collections Framework 2 Georgiy Korneev Содержание 1. Коллекции 2. Множества 3. Списки 4.Java Advanced / Collections Framework 2 Georgiy Korneev Содержание 1. Коллекции 2. Множества 3. Списки 4. Очереди 5. Отображения 6. Упорядоченные коллекции 7. Алгоритмы 8. Устаревшие коллекции 9. Заключение

Java Advanced / Collections Framework 3 Georgiy Korneev Collections Framework Набор стандартных контейнеров (коллекций) и правилJava Advanced / Collections Framework 3 Georgiy Korneev Collections Framework Набор стандартных контейнеров (коллекций) и правил их использования Интерфейсы Релизации Алгоритмы Пакет java. util

 Коллекции. Часть 1 Коллекции. Часть

Java Advanced / Collections Framework 5 Georgiy Korneev Коллекции Коллекция ─ неупорядоченный набор элементов Интерфейс CollectionJava Advanced / Collections Framework 5 Georgiy Korneev Коллекции Коллекция ─ неупорядоченный набор элементов Интерфейс Collection

Java Advanced / Collections Framework 6 Georgiy Korneev Структура Collections Framework (1) Java Advanced / Collections Framework 6 Georgiy Korneev Структура Collections Framework (1)

Java Advanced / Collections Framework 7 Georgiy Korneev Немодифицирующие операции Определение размера size()  ─ количествоJava Advanced / Collections Framework 7 Georgiy Korneev Немодифицирующие операции Определение размера size() ─ количество элементов is. Empty() ─ проверка на пустоту Проверки на вхождение contains ( Object o) ─ одного элемента contains. All(Collection c) ─ всех элементов коллекции c

Java Advanced / Collections Framework 8 Georgiy Korneev Модифицирующие операции Добавление элементов add(Object e)  ─Java Advanced / Collections Framework 8 Georgiy Korneev Модифицирующие операции Добавление элементов add(Object e) ─ одного элемента add. All(Collection c) ─ элементов коллекции Удаление элементов remove(Object e) ─ одного элемента remove. All(Collection с) ─ элементов коллекции retain. All(Collection с) ─ удаление элементов не из коллекции clear() ─ удаление всех элементов Исключения Unsupported. Operation. Exception

Java Advanced / Collections Framework 9 Georgiy Korneev Пример.  ? public int read(String file) throwsJava Advanced / Collections Framework 9 Georgiy Korneev Пример. ? public int read(String file) throws IOException { Scanner scanner = new Scanner( new File(file), «Cp 1251»); int read = 0; while (scanner. has. Next()) { read++; c. add(scanner. next()); } return read; }

Java Advanced / Collections Framework 10 Georgiy Korneev Итераторы Итератор ─ обход коллекции Интерфейс Iterator МетодJava Advanced / Collections Framework 10 Georgiy Korneev Итераторы Итератор ─ обход коллекции Интерфейс Iterator Метод Iterator Collection. iterator()

Java Advanced / Collections Framework 11 Georgiy Korneev Методы итераторов has. Next()  ─ определение наличияJava Advanced / Collections Framework 11 Georgiy Korneev Методы итераторов has. Next() ─ определение наличия следующего элемента next() ─ взятие следующего элемента remove() ─ удаление элемента Исключения No. Such. Element. Exception ─ бросается при достижении конца коллекции Concurrent. Modification. Exception ─ бросается при изменении коллекции

Java Advanced / Collections Framework 12 Georgiy Korneev Применение итераторов ? for(Iterator i = c. iterator();Java Advanced / Collections Framework 12 Georgiy Korneev Применение итераторов ? for(Iterator i = c. iterator(); i. has. Next(); ) { E element = ( E) i. next(); . . . } ? for(Iterator i = c. iterator(); i. has. Next(); ) { if (!p(i. next()) i. remove(); }

Java Advanced / Collections Framework 13 Georgiy Korneev Пример.  ? public void dump() { forJava Advanced / Collections Framework 13 Georgiy Korneev Пример. ? public void dump() { for (Iterator i = c. iterator(); i. has. Next(); ) { String word = (String) i. next(); System. out. print(word + «, «); } System. out. println(); }

 Множества. Часть 2 Множества. Часть

Java Advanced / Collections Framework 15 Georgiy Korneev Множества Множество ─ коллекция без повторяющихся элементов ИнтерфейсJava Advanced / Collections Framework 15 Georgiy Korneev Множества Множество ─ коллекция без повторяющихся элементов Интерфейс Set

Java Advanced / Collections Framework 16 Georgiy Korneev Структура Collections Framework (1) Java Advanced / Collections Framework 16 Georgiy Korneev Структура Collections Framework (1)

Java Advanced / Collections Framework 17 Georgiy Korneev Сравнение элементов Метод Object. equals(Object object)  РефлексивностьJava Advanced / Collections Framework 17 Georgiy Korneev Сравнение элементов Метод Object. equals(Object object) Рефлексивность o 1. equals(o 1) Симметричность o 1. equals(o 2) == e 2. equals(o 1) Транзитивность o 1. equals(o 2) && o 2. equals(o 3) => o 1. equals(o 3) Устойчивость o 1. equals(o 2) не изменяется, если o 1 и o 2 не изменяются Обработка null o 1. equals(null) == false

Java Advanced / Collections Framework 18 Georgiy Korneev Операции над множествами add. All(Collection c) – объединениеJava Advanced / Collections Framework 18 Georgiy Korneev Операции над множествами add. All(Collection c) – объединение множеств retain. All(Collection c) – пересечение множеств contains. All(Collection c) – проверка вхождения remove. All(Collection c) – разность множеств

Java Advanced / Collections Framework 19 Georgiy Korneev Классы Hash. Set и Linked. Hash. Set Java Advanced / Collections Framework 19 Georgiy Korneev Классы Hash. Set и Linked. Hash. Set ─ множество на основе хэша Linked. Hash. Set ─ множество на основе хэша c сохранение порядка обхода

Java Advanced / Collections Framework 20 Georgiy Korneev Вычисление хэшей Метод  Object. hash. Code() УстойчивостьJava Advanced / Collections Framework 20 Georgiy Korneev Вычисление хэшей Метод Object. hash. Code() Устойчивость hash. Code () не изменяется, если объект не изменяется Согласованность с equals o 1. equals(o 2) => o 1. hash. Code() == o 2. hash. Code()

Java Advanced / Collections Framework 21 Georgiy Korneev Конструкторы Hash. Set()  ─ пустое множество Hash.Java Advanced / Collections Framework 21 Georgiy Korneev Конструкторы Hash. Set() ─ пустое множество Hash. Set(Collection c) ─ элементы коллекции Hash. Set(int initial. Capacity) ─ начальная вместимость Hash. Set(int initial. Capacity, double load. Factor) ─ начальная вместимость и степень заполнения

Java Advanced / Collections Framework 22 Georgiy Korneev Пример.  ? Collection. Example c = Java Advanced / Collections Framework 22 Georgiy Korneev Пример. ? Collection. Example c = new Collection. Example(new Hash. Set()); int words = c. read(args[0]); System. out. println(“ ? total: » + words); System. out. println(“ ? words: » + c. get. Collection(). size()); c. dump();

 Списки. Часть 3 Списки. Часть

Java Advanced / Collections Framework 24 Georgiy Korneev Списки Список ─ коллекция с индексированными элементами ИнтерфейсJava Advanced / Collections Framework 24 Georgiy Korneev Списки Список ─ коллекция с индексированными элементами Интерфейс List

Java Advanced / Collections Framework 25 Georgiy Korneev Структура Collections Framework (1) Java Advanced / Collections Framework 25 Georgiy Korneev Структура Collections Framework (1)

Java Advanced / Collections Framework 26 Georgiy Korneev Операции со списками Доступ по индексу get(int i)Java Advanced / Collections Framework 26 Georgiy Korneev Операции со списками Доступ по индексу get(int i) ─ чтение set(int I, Object e) ─ запись add(int i, Object e) ─ добавление remove(int i) ─ удаление Поиск элементов index. Of(Object e) ─ поиск с начала last. Index. Of(Object e) ─ поиск с конца Взятие вида List sub. List(int from, int to)

Java Advanced / Collections Framework 27 Georgiy Korneev Итератор по списку Интерфейс List. Iterator extends IteratorJava Advanced / Collections Framework 27 Georgiy Korneev Итератор по списку Интерфейс List. Iterator extends Iterator Метод list. Iterator() Предыдущий / Следующий элементы

Java Advanced / Collections Framework 28 Georgiy Korneev Операции итератора по списку Передвижение has. Next() /Java Advanced / Collections Framework 28 Georgiy Korneev Операции итератора по списку Передвижение has. Next() / has. Previous() ─ проверка next() / previous() ─ взятие элемента next. Index() / previous. Index() ─ определение индекса Изменение remove() ─ удаление элемента set(Object e) ─ изменение элемента add(Object e) ─ добавление элемента

Java Advanced / Collections Framework 29 Georgiy Korneev Класс Array. List ─ список на базе массиваJava Advanced / Collections Framework 29 Georgiy Korneev Класс Array. List ─ список на базе массива Плюсы Быстрый доступ по индексу Быстрая вставка и удаление элементов с конца Минусы Медленная вставка и удаление элементов

Java Advanced / Collections Framework 30 Georgiy Korneev Вместимость Array. List Вместимость ─ реальное количество элементовJava Advanced / Collections Framework 30 Georgiy Korneev Вместимость Array. List Вместимость ─ реальное количество элементов Дополнительные методы ensure. Capacity(int c) ─ определение вместимости trim. To. Size() ─ “ подгонка ” вместимости

Java Advanced / Collections Framework 31 Georgiy Korneev Конструкторы Array. List() ─ пустой список Array. List(CollectionJava Advanced / Collections Framework 31 Georgiy Korneev Конструкторы Array. List() ─ пустой список Array. List(Collection c) ─ копия коллекции Array. List(int initial. Capacity) ─ пустой список заданной вместимости

Java Advanced / Collections Framework 32 Georgiy Korneev Применения Array. List “ Бесконечный ” массив СтекJava Advanced / Collections Framework 32 Georgiy Korneev Применения Array. List “ Бесконечный ” массив Стек

Java Advanced / Collections Framework 33 Georgiy Korneev Пример.  ? List list = new Array.Java Advanced / Collections Framework 33 Georgiy Korneev Пример. ? List list = new Array. List(); … for (int i = list. size() — 1; i >= 0; i—) { System. out. println(list. get(i)); }

Java Advanced / Collections Framework 34 Georgiy Korneev Класс Linked. List  ─ двусвязный список ПлюсыJava Advanced / Collections Framework 34 Georgiy Korneev Класс Linked. List ─ двусвязный список Плюсы Быстрое добавление и удаление элементов Минусы Медленный доступ по индексу

Java Advanced / Collections Framework 35 Georgiy Korneev Возможности Linked. List Конструкторы Linked. List() ─ пустойJava Advanced / Collections Framework 35 Georgiy Korneev Возможности Linked. List Конструкторы Linked. List() ─ пустой список Linked. List(Collection c) ─ копия коллекции Методы add. First(Object o) – добавить в начало списка add. Last(Object o) – добавить в конец списка remove. First() – удалить первый элемент remove. Last() – удалить последний элемент

Java Advanced / Collections Framework 36 Georgiy Korneev Применения Linked. List Стек Очередь Дек Java Advanced / Collections Framework 36 Georgiy Korneev Применения Linked. List Стек Очередь Дек

Java Advanced / Collections Framework 37 Georgiy Korneev Пример.  ? List list = new Linked.Java Advanced / Collections Framework 37 Georgiy Korneev Пример. ? List list = new Linked. List(); … for (List. Iterator li = list. Iterator(list. size()); li. has. Previous(); ) { System. out. println(li. previous()); }

 Очереди. Часть 4 Очереди. Часть

Java Advanced / Collections Framework 39 Georgiy Korneev Структура Collections Framework (2) Java Advanced / Collections Framework 39 Georgiy Korneev Структура Collections Framework (2)

Java Advanced / Collections Framework 40 Georgiy Korneev Очередь – хранилище элементов для обработки Интерфейс QueueJava Advanced / Collections Framework 40 Georgiy Korneev Очередь – хранилище элементов для обработки Интерфейс Queue Свойства очередей Порядок выдачи элементов определяется конкретной реализацией Очереди не могут хранить null У очереди может быть ограничен размер

Java Advanced / Collections Framework 41 Georgiy Korneev Методы очередей Обычные методы add(Object o) – добавитьJava Advanced / Collections Framework 41 Georgiy Korneev Методы очередей Обычные методы add(Object o) – добавить элемент Бросает Illegal. State Exception Object element() – вершина очереди Бросает No. Such. Element. Exception Object remove() – удалить элемент из вершины Бросает No. Such. Element. Exception Методы, не бросающие исключений offer(Object o) – добавить элемент Object peek() – вершина очереди Object poll() – удалить элемент из вершины

Java Advanced / Collections Framework 42 Georgiy Korneev Класс Linked. List Очередь на двусвязном списке Java Advanced / Collections Framework 42 Georgiy Korneev Класс Linked. List Очередь на двусвязном списке

 Отображения. Часть 5 Отображения. Часть

Java Advanced / Collections Framework 44 Georgiy Korneev Структура Collections Framework (2) Java Advanced / Collections Framework 44 Georgiy Korneev Структура Collections Framework (2)

Java Advanced / Collections Framework 45 Georgiy Korneev Отображение ─ множество пар ключ-значение при уникальности ключаJava Advanced / Collections Framework 45 Georgiy Korneev Отображение ─ множество пар ключ-значение при уникальности ключа Интерфейс Map

Java Advanced / Collections Framework 46 Georgiy Korneev Методы отображений (1) Доступ get(Object k) ─ получениеJava Advanced / Collections Framework 46 Georgiy Korneev Методы отображений (1) Доступ get(Object k) ─ получение значение put(Object k, Object v) ─ запись remove(Object k) ─ удаление Проверки contains. Key(Object k) ─ наличие ключа contains. Value(Object v) ─ наличие значения Определения размера size() ─ размер отображения is. Empty() ─ проверка на пустоту

Java Advanced / Collections Framework 47 Georgiy Korneev Методы отображений ( 2 ) Взятие видов entry.Java Advanced / Collections Framework 47 Georgiy Korneev Методы отображений ( 2 ) Взятие видов entry. Set() ─ множество пар values() ─ коллекция значений key. Set() ─ множество ключей Массовые операции put. All(Map map) ─ добавление всех пар

Java Advanced / Collections Framework 48 Georgiy Korneev Пары Пара ─ ключ + значение Интерфейс Map.Java Advanced / Collections Framework 48 Georgiy Korneev Пары Пара ─ ключ + значение Интерфейс Map. Entry Методы Object get. Key() Object get. Value() set. Value(Object v)

Java Advanced / Collections Framework 49 Georgiy Korneev Классы Hash. Map и Linked. Hash. Map Java Advanced / Collections Framework 49 Georgiy Korneev Классы Hash. Map и Linked. Hash. Map ─ отображение на основе хэшей с сохранением порядка обхода

Java Advanced / Collections Framework 50 Georgiy Korneev Конструкторы Hash. Map()  ─ пустое отображение Hash.Java Advanced / Collections Framework 50 Georgiy Korneev Конструкторы Hash. Map() ─ пустое отображение Hash. Map(Map m) ─ копия отображения Hash. Map(int initial. Capacity) ─ начальная вместимость Hash. Map (int initial. Capacity, int load. Factor) ─ начальная вместимость и степень заполнения

Java Advanced / Collections Framework 51 Georgiy Korneev Пример.  ? while (scanner. has. Next()) {Java Advanced / Collections Framework 51 Georgiy Korneev Пример. ? while (scanner. has. Next()) { String word = scanner. next(); Integer count = (Integer) map. get(word); int value = (count == null) ? 0 : count. int. Value(); map. put(word, new Integer(value + 1)); }

Java Advanced / Collections Framework 52 Georgiy Korneev Пример.  ? for ( Iterator i =Java Advanced / Collections Framework 52 Georgiy Korneev Пример. ? for ( Iterator i = map. entry. Set(). iterator(); i. has. Next(); ) { Map. Entry entry = (Map. Entry) i. next(); System. out. println( entry. get. Key() + » » + entry. get. Value()); }

 Упорядоченные коллекции. Часть 6 Упорядоченные коллекции. Часть

Java Advanced / Collections Framework 54 Georgiy Korneev Структура Collections Framework (1) Java Advanced / Collections Framework 54 Georgiy Korneev Структура Collections Framework (1)

Java Advanced / Collections Framework 55 Georgiy Korneev Структура Collections Framework (2) Java Advanced / Collections Framework 55 Georgiy Korneev Структура Collections Framework (2)

Java Advanced / Collections Framework 56 Georgiy Korneev Сравнение элементов Интерфейс Comparable int compare. To(Object o)Java Advanced / Collections Framework 56 Georgiy Korneev Сравнение элементов Интерфейс Comparable int compare. To(Object o) ─ естественный порядок Интерфейс Comparator int compare(Object o 1, Object o 2) ─ сравнение элементов

Java Advanced / Collections Framework 57 Georgiy Korneev Сравнение элементов (контракт) Транзитивность Антисимметричность sgn(o 1. compare.Java Advanced / Collections Framework 57 Georgiy Korneev Сравнение элементов (контракт) Транзитивность Антисимметричность sgn(o 1. compare. To(o 2)) == -sgn(o 2. compare. To(o 1)) Согласованность с равенством o 1. compare. To(o 2) = 0 = > sgn(o 1. compare. To(o 3)) == sgn(o 2. compare. To(o 3)) Согласованность с equals() o 1. equals(o 2) == (o 1. compare. To(o 2) == 0)

Java Advanced / Collections Framework 58 Georgiy Korneev Упорядоченные множества Интерфейс Sorted. Set first() – минимальныйJava Advanced / Collections Framework 58 Georgiy Korneev Упорядоченные множества Интерфейс Sorted. Set first() – минимальный элемент last() – максимальный элемент head. Set(Object o) – подмножество элементов меньших o tail. Set(Object o) – подмножество элементов больших либо равных o sub. Set(Object o 1, Object o 2) – подмножество элементов меньших o 2 и больше либо равных o 2 Класс Tree. Set

Java Advanced / Collections Framework 59 Georgiy Korneev Упорядоченные отображения Интерфейс Sorted. Map first. Key() –Java Advanced / Collections Framework 59 Georgiy Korneev Упорядоченные отображения Интерфейс Sorted. Map first. Key() – минимальный ключ last. Key() – максимальный ключ head. Map(Object o) – отображение ключей меньших o tail. Map(Object o) – отображение ключей больших либо равных o sub. Map(Object o 1, Object o 2) – отображение ключей меньших o 2 и больше либо равных o 1 Класс Tree. Map

Java Advanced / Collections Framework 60 Georgiy Korneev Класс Priority. Queue Очередь с приоритетами Реализована наJava Advanced / Collections Framework 60 Georgiy Korneev Класс Priority. Queue Очередь с приоритетами Реализована на основе двоичной кучи

Java Advanced / Collections Framework 61 Georgiy Korneev Пример. Применение Tree. Set Естественный порядок Collection. ExampleJava Advanced / Collections Framework 61 Georgiy Korneev Пример. Применение Tree. Set Естественный порядок Collection. Example c = new Collection. Example( new Tree. Set()); c. read(args[0]); c. dump(); Порядок без учета регистра Collection. Example c = new Collection. Example(new Tree. Set(String. CASE_INSENSITIVE_ORDER)); int words = c. read(args[0]); c. dump();

 Алгоритмы. Часть 7 Алгоритмы. Часть

Java Advanced / Collections Framework 63 Georgiy Korneev Класс Collections Алгоритмы для работы с коллекциями ПростыеJava Advanced / Collections Framework 63 Georgiy Korneev Класс Collections Алгоритмы для работы с коллекциями Простые операции Перемешивание Сортировка Двоичный поиск Поиск минимума и максимума Специальные коллекции Оболочки коллекций

Java Advanced / Collections Framework 64 Georgiy Korneev Простые операции Заполнение списка указанным значением fill(List l,Java Advanced / Collections Framework 64 Georgiy Korneev Простые операции Заполнение списка указанным значением fill(List l, Object v) Переворачивание списка reverse(List l) Копирование из списка в список copy(List l 1, List l 2)

Java Advanced / Collections Framework 65 Georgiy Korneev Перемешивание Генерирует случайную перестановку Методы shuffle(List l) shuffle(ListJava Advanced / Collections Framework 65 Georgiy Korneev Перемешивание Генерирует случайную перестановку Методы shuffle(List l) shuffle(List l, Random r)

Java Advanced / Collections Framework 66 Georgiy Korneev Сортировки Устойчивая сортировка Алгоритм – Merge Sort МетодыJava Advanced / Collections Framework 66 Georgiy Korneev Сортировки Устойчивая сортировка Алгоритм – Merge Sort Методы sort(List l) – сортировка списка ( естественный порядок) sort(List l, Comparator c) – сортировка списка ( указанный порядок)

Java Advanced / Collections Framework 67 Georgiy Korneev Двоичный поиск Осуществляет двоичный поиск в списке МетодыJava Advanced / Collections Framework 67 Georgiy Korneev Двоичный поиск Осуществляет двоичный поиск в списке Методы binary. Search(List l, Object o) – ищет o в списке binary. Search(List l, Object o, Comparator c) – ищет o в списке

Java Advanced / Collections Framework 68 Georgiy Korneev Поиск минимума и максимума Поиск минимума min (Java Advanced / Collections Framework 68 Georgiy Korneev Поиск минимума и максимума Поиск минимума min ( Collection c) – минимальный элемент (естественный порядок) min ( Collection c , Comparator cmp) – минимальный элемент (указанный порядок) Поиск максимума max ( Collection c) – максимальный элемент (естественный порядок) max ( Collection c , Comparator cmp) – максимальный элемент (указанный порядок)

Java Advanced / Collections Framework 69 Georgiy Korneev Пример. Алгоритмы на списках List list = newJava Advanced / Collections Framework 69 Georgiy Korneev Пример. Алгоритмы на списках List list = new Array. List(); Collection. Example c = new Collection. Example(list); c. read(args[0]); Collections. reverse(list); Collections. shuffle(list); Collections. sort(list, String. CASE_INSENSITIVE_ORDER); Collections. fill(list, «temp»); System. out. println(Collections. min(list)); System. out. println(Collections. min(list, String. CASE_INSENSITIVE_ORDER));

Java Advanced / Collections Framework 70 Georgiy Korneev Оболочки коллекций Неизменяемые виды на коллекции unmodifiable. Set(SetJava Advanced / Collections Framework 70 Georgiy Korneev Оболочки коллекций Неизменяемые виды на коллекции unmodifiable. Set(Set s) – неизменяемое множество unmodifiable. Sorted. Set(Sorted. Set s) – неизменяемое упорядоченное множество unmodifiable. List(List l) – неизменяемый список unmodifiable. Map(Map m) – неизменяемое отображение unmodifiable. Sorted. Map(Sorted. Map m) – неизменяемое упорядоченное отображени

Java Advanced / Collections Framework 71 Georgiy Korneev Класс Arrays Операции с массивами Сортировка Двоичный поискJava Advanced / Collections Framework 71 Georgiy Korneev Класс Arrays Операции с массивами Сортировка Двоичный поиск Поиск минимума и максимума Заполнение Перемешивание Вид массива как списка List as. List()

 Устаревшие коллекции. Часть 8 Устаревшие коллекции. Часть

Java Advanced / Collections Framework 73 Georgiy Korneev Устаревшие коллекции являются синхронизированными Vector ( Array. ListJava Advanced / Collections Framework 73 Georgiy Korneev Устаревшие коллекции являются синхронизированными Vector ( Array. List ) Stack ( Array. List ) Dictionary ( Map ) Hashtable ( Hash. Map ) Enumeration ( Iterator )

 Заключение. Часть 9 Заключение. Часть

Java Advanced / Collections Framework 75 Georgiy Korneev Ссылки Collections Framework // http: //java. sun. com/jJava Advanced / Collections Framework 75 Georgiy Korneev Ссылки Collections Framework // http: //java. sun. com/j 2 se/1. 5. 0/docs/guide/coll ections/index. html Collections Tutorial // http: //java. sun. com/docs/books/tutorial/collec tions/index. html Introduction to the Collections Framework // http: // java. sun. com / developer / online. Training / collections /

Java Advanced / Collections Framework 76 Georgiy Korneev Вопросы Java Advanced / Collections Framework 76 Georgiy Korneev Вопросы