Содержание
- 2. План лекции Collection Framework Типы коллекций Параметризованные типы Параметризованные методы Автоупаковка/автораспаковка
- 3. Коллекции Коллекции (контейнеры) – хранилища, поддерживающие разнообразные способы накопления и упорядочивания объектов с целью обеспечения возможностей
- 4. Интерфейс Collection Является образующим для интерфейсов коллекций Определяет базовую функциональность любой коллекции Подразумевает добавление, удаление, выбор
- 5. Методы интерфейса Collection Добавление элементов boolean add(Object o), boolean addAll(Collection c) Исключение элементов boolean remove(Object o),
- 6. Интерфейс Set Расширяет интерфейс Collection Не разрешает наличие дубликатов Допускается наличие только одной ссылки null Объекты
- 7. Интерфейс List Расширяет интерфейс Collection Подразумевает хранение упорядоченной последовательности объектов Порядок хранения определяется порядком добавления элементов
- 8. Специальные методы интерфейса List Адресное добавление void add(int index, Object o), boolean addAll(int index, Collection c)
- 9. Интерфейс Iterator Позволяет работать с коллекцией как с набором (серией) элементов: Получать следующий объект Object next()
- 10. Интерфейс Map Не расширяет интерфейс Collection Подразумевает хранение набора объектов парами ключ/значение Ключи должны быть уникальными
- 11. Методы интерфейса Map Добавление объектов Object put(Object key, Object value), void putAll(Map t) Исключение объектов Object
- 12. Некоторые классы коллекций Динамические массивы ArrayList (List), Vector (List) Двухсвязный список LinkedList (List) Упорядоченные множество и
- 13. Класс Collections Содержит ряд статических методов прикладного назначения, позволяющих оперировать объектами коллекций Группы методов: Создание и
- 14. Обертки коллекций Синхронизированные Обеспечивают механизмы синхронизации доступа для многопоточных приложений List synchronizedList(List l), … Неизменяемые Запрещают
- 15. Прикладные методы Методы поиска минимума и максимума min(), max() Работа со списками reverse(), shuffle(), fill(), copy(),
- 16. Обновленные коллекции (Java 5) Все интерфейсы коллекций стали параметризованными Включая итераторы! Все классы коллекций стали параметризованными
- 17. Параметризованные типы Параметризованные типы (настраиваемые типы, generic types) Позволяют создавать классы, интерфейсы и методы, в которых
- 18. Скромный пример Пример класса Пример использования class Generic { T obj; Generic(T o) {obj = o;}
- 19. Особенности параметризованных типов Использовать примитивные типы в качестве параметров-типов нельзя Если одинаковые настраиваемые типы имеют различные
- 20. Общий синтаксис Объявление настраиваемого типа class имяКласса {...} Создание ссылки и объекта настраиваемого типа имяКласса имяПеременной
- 21. Ограниченные типы Ограничение типа позволяет использовать у ссылок методы и поля, доступные в типе-ограничителе Типы, не
- 22. Метасимвольный аргумент Что делать при передаче экземпляров параметризованных типов в методы, т.е. как писать сигнатуру? Для
- 23. Метасимвол с ограничениями Ограничение сверху Тип super допускается Ограничение снизу Тип sub не допускается
- 24. Параметризованные методы Методы могут иметь собственные типы-параметры Фактические аргументы, передаваемые в формальные аргументы, имеющие тип-параметр, будут
- 25. Ряд особенностей Конструкторы могут быть параметризованными (даже если сам класс таковым не является) Интерфейсы могут быть
- 26. Ряд особенностей Нельзя создать массив типа-параметра Массивов элементов конкретной версии параметризованного типа не бывает class Generic
- 27. И как же это работает? Механизм стирания В реальном байт-коде никаких настраиваемых типов в целом-то и
- 28. Ошибки неоднозначности «Логически правильный» код Оказывается неверным с точки зрения компилятора И это – самый простой
- 29. Автоупаковка и автораспаковка Автоупаковка – процесс автоматической инкапсуляции данных простого типа в экземпляр соответствующего ему класса-обертки
- 30. Особенности автоупаковки Происходит при присваивании, вычислении выражений и при передаче параметров Объекты создаются без использования ключевого
- 31. Спасибо за внимание!
- 33. Скачать презентацию