Урок 21: Коллекции Set
Коллекции типа Set
в Java представляют собой неупорядоченные коллекции уникальных элементов. Это означает, что каждое значение может присутствовать в коллекции только один раз. Основные реализации интерфейса Set
включают HashSet
, LinkedHashSet
и TreeSet
, каждая из которых имеет свои особенности и области применения.
HashSet
HashSet
— это наиболее популярная реализация интерфейса Set
. Она обеспечивает быструю проверку наличия элемента благодаря использованию хеш-таблицы, однако не гарантирует какого-либо порядка элементов.
Пример использования HashSet
Рассмотрим пример работы с HashSet
:
import java.util.HashSet;
import java.util.Set;
public class HashSetExample {
public static void main(String[] args) {
Set set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Orange");
set.add("Apple"); // Дубликат не будет добавлен
for (String fruit : set) {
System.out.println(fruit);
}
}
}
Результат выполнения
LinkedHashSet
LinkedHashSet
сохраняет порядок добавления элементов, что делает его полезным, когда требуется итерация в определенном порядке.
Пример использования LinkedHashSet
Пример работы с LinkedHashSet
:
import java.util.LinkedHashSet;
import java.util.Set;
public class LinkedHashSetExample {
public static void main(String[] args) {
Set set = new LinkedHashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Orange");
set.add("Apple"); // Дубликат не будет добавлен
for (String fruit : set) {
System.out.println(fruit);
}
}
}
Результат выполнения
Упражнения
Упражнение 1: Работа с HashSet
Напишите программу, которая создает множество уникальных номеров студентов и выводит их на экран.
Решение:
import java.util.HashSet;
import java.util.Set;
public class StudentSet {
public static void main(String[] args) {
Set studentIds = new HashSet<>();
studentIds.add(101);
studentIds.add(102);
studentIds.add(103);
studentIds.add(101); // Дубликат не будет добавлен
for (Integer id : studentIds) {
System.out.println("Student ID: " + id);
}
}
}
Объяснение: Программа создает множество уникальных номеров студентов с использованием HashSet
и выводит их на экран с помощью цикла for-each
. Дубликаты не добавляются в множество.
Упражнение 2: Работа с TreeSet
Напишите программу, которая создает отсортированное множество имен и выводит их на экран.
Решение:
import java.util.Set;
import java.util.TreeSet;
public class NameSet {
public static void main(String[] args) {
Set names = new TreeSet<>();
names.add("Анна");
names.add("Иван");
names.add("Мария");
names.add("Анна"); // Дубликат не будет добавлен
for (String name : names) {
System.out.println(name);
}
}
}
Объяснение: Программа создает отсортированное множество имен с использованием TreeSet
и выводит их на экран с помощью цикла for-each
. Дубликаты не добавляются в множество.