Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прога 2012.docx
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
1.45 Mб
Скачать
  1. Основные типы коллекций, имеющиеся в Java Collection Framework:

Коллекции – это хранилища, поддерживающие различные способы накопления и упорядочения объектов с целью обеспечения возможностей эффективного доступа к ним. Они представляют собой реализацию абстрактных типов (структур) данных, поддерживающих три основные операции:

· добавление нового элемента в коллекцию;

· удаление элемента из коллекции;

· изменение элемента в коллекции.

Применение коллекций в Java 2 обеспечивается специальным средством Java Collection Framework.

Иерархия коллекции:

Интефейс Collection (базовый «класс») – предусматривает наиболее общие операции для совокупностей элементов.

Интефейс Set (множество) – соответствует математическому понятию "множество". Не допускает дубликатов.

Интерфейс List (список), допускает дубликаты.

Интерфейс Queue – как список, но FIFO(что такое FIFO я не знаю).

  1. Составные части jcf и их назначение:

JCF состоит из:

Интерфейсов (обозначают функциональность)

Реализаций (ориентируются на один из вариантов реализации)

Алгоритмов (методов решения типовых задач)

Интерфейсы:

Интерфейс Collection – базовый для интерфейсов List (списки), Set (множества) и SortedSet (множества с порядком). Интерфейсы List и SortedSet содержат дополнительные методы, упрощающие некоторые действия:

boolean add(E e) добавляет e типа E в коллекцию, true, если удалось.

boolean addAll(Collection<? extends E> c) добавляет все элементы кол. c

void clear() удаляет все элементы коллекции.

boolean contains(Object o) проверка принадлежности o коллекции

boolean isEmpty() проверяет, что коллекция пуста.

Iterator<E> iterator() создает итератор для перебора элементов коллекции.

boolean remove(Object o) удаляет элемент o из коллекции, true, если удалось.

int size() дает количество элементов коллекции.

Реализации:

Примеры создания пустого списка с элементами типа String на основе массива и на основе связного списка:

List<String> A=new ArrayList<String>( );

List<String> B=new LinkedList<String>( );

Алгоритмы:

Алгоритмы для решения типовых задач, в которых данными являются коллекции, содержатся в классе java.util.Collections. Алгоритмы обеспечивают сортировку данных (sort), перемешивание данных (shuffle), поиск элементов (binarySearch), поиск экстремальных элементов (min, max).

  1. Назначение интерфейсов и алгоритмов jcf:

Интерфейсы позволяют сконцентрировать внимание на операциях с коллекциями, отвлекаясь от реализации. Интерфейсы содержат имена действий (методов) для работы с коллекциями и их элементами. Используются методы интерфейсов.

Алгоритмы для решения типовых задач, в которых данными являются коллекции, содержатся в классе java.util.Collections. Алгоритмы обеспечивают сортировку данных (sort), перемешивание данных (shuffle), поиск элементов (binarySearch), поиск экстремальных элементов (min, max).

  1. Примеры (двух) интерфейсов и (двух) реализаций: сходства и различия:

Реализации (классы, реализующие методы интерфейсов):

Примеры создания пустого списка с элементами типа String на основе массива и на основе связного списка:

List<String> A=new ArrayList<String>( );

List<String> B=new LinkedList<String>( );

Интерфейсы (определяют функциональность коллекции):

m.listA.remove(m.listA.size()-1); // А без последнего элемента

setMA.addAll(setMB); //объеденение множества МА и МВ