Skip to main content

07. Множество

Множество - это коллекция, которая не может содержать повторяющиеся элементы.

Есть разные способы добиться уникальности хранящихся в коллекции элементов. В этом блоке мы рассмотрим самый неэффективный способ реализации множества, дальнейшие два блока - более сложные, но зато структуры данных будут работать гораздо быстрее.

Самый простой способ - это так же, как и в классе коллекций из первого блока, хранить динамически расширяемый массив и количество элементов добавленных элементов.

Правда, перед добавлением элементов нужно проверять, не сохранено ли уже новое значение в коллекции. Проще всего это сделать за счёт перебора сохранённых элементов перед добавлением нового простым перебором.

Задание

Трудоёмкость

Это задание рассчитано на один урок, за него будет выставлена одна оценка

Создайте копию класса MyCollection из первого задания, переименуйте его в MySet и преобразуйте его следующим образом:

Использовать встроенные коллекции java запрещается

  1. Переопределите метод boolean add(E e). Перед добавлением необходимо проверить, нет ли уже такого элемента в множестве. Если такой элемент уже есть, то возвращает false, иначе true
  2. boolean containsAll(MySet mySet) - возвращает true, если в коллекции присутствует каждый из элементов переданной в аргументах коллекции
  3. boolean addAll(MySet mySet) - добавляет в множество все элементы множества, переданной в аргументах по той же логике, что и boolean add(int v). Возвращает true, если был добавлен хотя бы один элемент.
  4. boolean removeAll(MySet mySet) - удаляет все элементы, содержащиеся в множестве mySet возвращает true, если был удалён хотя бы один элемент
  5. boolean retainAll(MySet mySet) - оставляет только те элементы, которые есть в mySet возвращает true, если множество было изменено

Все поля и методы должны иметь модификатор public

Ссылка на контест