07. Множество
Множество - это коллекция, которая не может содержать повторяющиеся элементы.
Есть разные способы добиться уникальности хранящихся в коллекции элементов. В этом блоке мы рассмотрим самый неэффективный способ реализации множества, дальнейшие два блока - более сложные, но зато структуры данных будут работать гораздо быстрее.
Самый простой способ - это так же, как и в классе коллекций из первого блока, хранить динамически расширяемый массив и количество элементов добавленных элементов.
Правда, перед добавлением элементов нужно проверять, не сохранено ли уже новое значение в коллекции. Проще всего это сделать за счёт перебора сохранённых элементов перед добавлением нового простым перебором.
Задание
Это задание рассчитано на один урок, за него будет выставлена одна оценка
Создайте копию класса MyCollection
из первого задания,
переименуйте его в MySet
и преобразуйте его следующим образом:
Использовать встроенные коллекции java запрещается
- Переопределите метод
boolean add(E e)
. Перед добавлением необходимо проверить, нет ли уже такого элемента в множестве. Если такой элемент уже есть, то возвращаетfalse
, иначеtrue
boolean containsAll(MySet mySet)
- возвращаетtrue
, если в коллекции присутствует каждый из элементов переданной в аргументах коллекцииboolean addAll(MySet mySet)
- добавляет в множество все элементы множества, переданной в аргументах по той же логике, что иboolean add(int v)
. Возвращаетtrue
, если был добавлен хотя бы один элемент.boolean removeAll(MySet mySet)
- удаляет все элементы, содержащиеся в множествеmySet
возвращаетtrue
, если был удалён хотя бы один элементboolean retainAll(MySet mySet)
- оставляет только те элементы, которые есть вmySet
возвращаетtrue
, если множество было изменено
Все поля и методы должны иметь модификатор public