HashSet — это коллекция, реализующая интерфейс Set. Главная особенность этого набора данных — уникальность элементов. Если вы попытаетесь добавить дубликат, он просто не будет сохранен.
Важно помнить:
- Порядок хранения элементов в
HashSetне гарантируется (это связано с механизмом хэширования). - Метод
add()возвращаетfalse, если элемент уже присутствовал. - Используется для быстрого поиска наличия объекта (
contains) и удаления дубликатов.
Этот интерактивный урок поможет разобраться, как работает код с множествами, как добавлять и проверять элементы. Практические задания включают тесты на понимание уникальности и синтаксиса.
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Инициализация HashSet
Дополните фрагмент кода на Java так, чтобы он корректно создавал новое множество строк с именем names. Вставьте правильное название класса коллекции после оператора new. Множество должно быть реализовано с помощью класса, который хранит уникальные элементы и не гарантирует порядок их хранения. После создания множества в него добавляется одна строка "Alice".
Set<String> names = new input1S<>();
names.add("Alice");2. Размер множества
Проанализируйте приведённый фрагмент кода на Java, который создаёт коллекцию HashSet, добавляет в неё три строковых элемента, две из которых одинаковы, и выводит размер множества. Выберите правильный результат выполнения программы.
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<String> languages = new HashSet<>();
languages.add("Java");
languages.add("Python");
languages.add("Java");
System.out.println(languages.size());
}
}3. Свойства коллекций
Перед вами список свойств, характерных для коллекций в Java. Распределите каждое утверждение в соответствующую категорию: 'HashSet' или 'ArrayList'. Обратите внимание, что каждая коллекция имеет свои особенности, связанные с хранением элементов и порядком их извлечения. Каждый элемент должен оказаться в одной из двух категорий.
4. Проверка наличия
Проанализируйте приведённый фрагмент кода на Java. В нём создаётся коллекция HashSet, добавляются несколько элементов, затем один элемент удаляется. Определите, что вернёт метод contains() для удалённого элемента после выполнения всех операций. Введите результат в виде одного слова: true или false.
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<String> colors = new HashSet<>();
colors.add("Red");
colors.add("Green");
colors.add("Blue");
colors.remove("Green");
System.out.println(colors.contains("Green"));
}
}5. Удаление дубликатов из списка
Из предложенных строк соберите корректную java-программу, которая создаёт список целых чисел с дубликатами, затем создаёт HashSet на основе этого списка (что автоматически удалит дубликаты) и выводит количество уникальных элементов. Лишние строки в решение включать не нужно.
import java.util.*;public class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 2, 3, 4, 4, 5); Set<Integer> set = new HashSet<>(list); System.out.println(set.size()); System.out.println(list.size()); Set<Integer> set = new TreeSet<>(list); }}6. Ошибка типизации
В данном фрагменте кода на Java объявлен HashSet для хранения целых чисел, но при добавлении элемента допущена ошибка типизации. Исправьте строку с добавлением элемента, чтобы код успешно скомпилировался и корректно вывел содержимое множества. Обратите внимание на соответствие типа добавляемого значения параметризации коллекции.
import java.util.HashSet; public class Main { public static void main(String[] args) { HashSet<Integer> numbers = new HashSet<>(); numbers.add("5"); System.out.println(numbers); }}