Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Лекции / 7 - Презентация 2

.pdf
Скачиваний:
60
Добавлен:
25.12.2020
Размер:
772.48 Кб
Скачать

Центр дистанционного обучения

Collections Framework

public interface List<E> {

boolean addAll(Collection<? extends E> c);

boolean addAll(int index, Collection<? extends E> c); boolean removeAll(Collection<?> c);

boolean retainAll(Collection<?> c);

...

}

Все эти методы возвращают true, если было хотя бы одно изменение

online.mirea.ru

Центр дистанционного обучения

Collections Framework

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

strings.add(“A”); strings.add(“B”);

List<Object> objects = new ArrayList<>(); objects.add(1);

objects.add(“C”);

objects.addAll(strings); // OK: Collection<? extends Object>

strings.addAll(objects); // ошибка компиляции

online.mirea.ru

Центр дистанционного обучения

Collections Framework

List<String> A = ...;

List<String> B = ...;

A.removeAll(B);

Содержимое A после выполнения removeAll:

online.mirea.ru

Центр дистанционного обучения

Collections Framework

List<String> A = ...;

List<String> B = ...;

A.retainAll(B);

Содержимое A после выполнения retainAll:

online.mirea.ru

Центр дистанционного обучения

Collections Framework

Collection – произвольная коллекция элементов. В отличие от списка, порядок не определен.

public interface Collection<E> {

...

}

Список является частным случаем коллекции с определенным порядком и доступом по индексу:

public interface List<E> extends Collection<E> {

...

}

online.mirea.ru

Центр дистанционного обучения

Collections Framework

public interface Collection<E> {

int size();

boolean isEmpty(); boolean add(E element); boolean remove(Object o); void clear();

boolean contains(Object o);

...

}

Все операции списка, где нет индексов

online.mirea.ru

Центр дистанционного обучения

Collections Framework

public interface Collection<E> {

boolean addAll(Collection<? extends E> c); boolean removeAll(Collection<?> c); boolean retainAll(Collection<?> c);

...

}

online.mirea.ru

Центр дистанционного обучения

Collections Framework

Цикл foreach работает для любой коллекции (в том числе для списка):

Collection<String> c1 = ...; for (String e : c1) {

System.out.println(e);

}

online.mirea.ru

Центр дистанционного обучения

Collections Framework

Абстракция для множеств:

public interface Set<E> extends Collection<E> {

...

}

Множество:

Порядок элементов не определен

Каждый элемент встречается только один раз

Set<Integer> S = ...;

online.mirea.ru

Центр дистанционного обучения

Collections Framework

Реализации интерфейса Set:

HashSet

плюсы: оптимальное быстродействие и расход памяти

минусы: случайный порядок элементов

TreeSet

плюсы: определен порядок элементов

минусы: быстродействие и расход памяти хуже, чем HashSet

минусы: требуется определить порядок, что не всегда возможно

Set<String> s1 = new HashSet<>();

Set<String> s2 = new TreeSet<>();

online.mirea.ru