Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемОлег Костомаров
1 Java : массивы и коллекции
2 Массивы Массивы простых типов: int []a = new int[10]; int []b = new int[]{ 0, 1, 2, 3, 4, 5 }; Массивы ссылочных типов (reference types): Object []c = new Object[10]; Object []d = new Object[]{ new Object(), new Object() }; boolean bResult = c.equals(true); //NullPointerException boolean bResult = d.equals(true); //ok, false
3 Работа с массивами Добавление элемента – требуется пересоздание с копированием: int []a = new int[10]; … int []temp = new int[ a.length + 1 ]; System.arraycopy( a, 0, temp, 0, a.length ); temp[ temp.length-1 ] = 111; a = temp; А также операции поиска, сортировки и удаления элемента – дополнительный объем кода.
4 Коллекции Динамическое управление содержимым: – методы add/remove имеют разную реализацию для разных типов коллекций; Возможность использовать оптимальную реализацию общего интерфейса Collection для конкретной задачи: – Использование итераторов на основе различных алгоритмов; Методы преобразования коллекций.
5 Иерархия классов Collection – интерфейс с общим описанием методов для трех типов коллекций; Set – реализует множество, не может содержать повторяющихся элементов; List – упорядоченный список (последовательность); Queue – очередь (например, для реализации алгоритма FIFO); Map – карта для «значения» по «ключу»; SortedSet – множество, упорядоченное по возрастанию; SortedMap – карта, упорядоченная по возрастанию ключевых значений.
6 Collection – общие методы для коллекций Добавление: add, addAll Удаление: remove, removeAll, retainAll, clear Поиск: contains, iterator Количество: isEmpty, size Преобразование: toArray() Если требуется преобразование к массиву определенного типа: String []s = collection.toArray( new String[]{} );
7 Реализация множеств – подклассы Set HashSet – обеспечивает наилучшую производительность, но порядок элементов может меняться во время выполнения; TreeSet – обеспечивает сортировку элементов; LinkedHashSet – обеспечивает сохранение первоначального порядка элементов.
8 Реализация списков – подклассы List ArrayList – обеспечивает хранение элементов списка в оптимальной для поиска форме; LinkedList – обеспечивает хранение элементов списка в оптимальной форме для удаления/вставки;
9 Реализация карт – подклассы Map HashMap – обеспечивает наилучшую производительность, порядок элементов может меняться во время выполнения; TreeMap – обеспечивает сортировку элементов по ключам; LinkedHashMap – обеспечивает сохранение первоначального порядка заполнения.
10 Измерение времени Получить текущее системное время в миллисекундах: long msTime = System.currentTimeMillis();
11 Задание 1 Разработать программу для тестирования скорости работы с: - массивами (тип int); -списками (java.util.ArrayList, LinkedList); -множествами (java.util.HashSet, java.util.LinkedHashSet). Количество элементов: Начальный размер массива – 1 элемент, на каждой итерации требуется пересоздание массива.
12 Задание 2 Разработать программу, в методе main которой задается массив строк. Реализовать вывод дублирующихся строк и количество уникальных слов. Использовать интерфейс и подклассы java.util.Set.
13 Задание 3 Разработать программу, в методе main которой задается массив строк. Реализовать вывод множества дублирующихся слов и множества уникальных слов. Использовать интерфейс и подклассы java.util.Set.
14 Задание 4 Разработать программу, в методе main которой заполняется список, некоторые значения которого равны null. Реализовать метод заменяющий значения null на заданное в параметре значение. Использовать подклассы java.util.List, а также интерфейс java.util.ListIterator.
15 Задание 5 Разработать программу, в методе main которой задается массив строк. Реализовать вывод списка слов и количества их повторений в исходном массиве. Использовать подклассы интерфейса java.util.Map.
16 Справочная информация Учебные материалы по коллекциям: ons/index.html Общие интерфейсы коллекций: ctions/interfaces/index.html Конкретные классы коллекций: ctions/implementations/index.html
Еще похожие презентации в нашем архиве:
© 2025 MyShared Inc.
All rights reserved.