HashSet: уникальные элементы

Тренажер по Java для пользователей с начальным уровнем подготовки.

Тренажер по Java

HashSet — это коллекция, реализующая интерфейс Set. Главная особенность этого набора данных — уникальность элементов. Если вы попытаетесь добавить дубликат, он просто не будет сохранен.

Важно помнить:

  • Порядок хранения элементов в HashSet не гарантируется (это связано с механизмом хэширования).
  • Метод add() возвращает false, если элемент уже присутствовал.
  • Используется для быстрого поиска наличия объекта (contains) и удаления дубликатов.

Этот интерактивный урок поможет разобраться, как работает код с множествами, как добавлять и проверять элементы. Практические задания включают тесты на понимание уникальности и синтаксиса.

Список тем

1. Инициализация HashSet

id: 40510_set_01_init

Дополните фрагмент кода на Java так, чтобы он корректно создавал новое множество строк с именем names. Вставьте правильное название класса коллекции после оператора new. Множество должно быть реализовано с помощью класса, который хранит уникальные элементы и не гарантирует порядок их хранения. После создания множества в него добавляется одна строка "Alice".

Заполните пропуски
Set<String> names = new input1S<>();
names.add("Alice");
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Размер множества

id: 40510_set_02_add_duplicates

Проанализируйте приведённый фрагмент кода на 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. Свойства коллекций

id: 40510_set_03_operations

Перед вами список свойств, характерных для коллекций в Java. Распределите каждое утверждение в соответствующую категорию: 'HashSet' или 'ArrayList'. Обратите внимание, что каждая коллекция имеет свои особенности, связанные с хранением элементов и порядком их извлечения. Каждый элемент должен оказаться в одной из двух категорий.

Перетяните элементы в соответствующие блоки
HashSet
ArrayList
Хранит дубликаты
Только уникальные
Гарантирует порядок вставки
Порядок не гарантирован
Основан на хэш-таблице
Реализует интерфейс List
Сообщения
Проверить
Показать подсказку

4. Проверка наличия

id: 40510_set_05_contains

Проанализируйте приведённый фрагмент кода на 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. Удаление дубликатов из списка

id: 40510_set_06_build

Из предложенных строк соберите корректную 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);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Ошибка типизации

id: 40510_set_07_generics_error

В данном фрагменте кода на 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);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру