В этом руководстве мы узнаем об интерфейсе Set в Java и его методах.
Set
Интерфейс Java Collections
основы обеспечивает функцию математического набора в Java. Расширяет Collection
интерфейс.
В отличие от List
интерфейса, наборы не могут содержать повторяющиеся элементы.
Классы, реализующие Set
Поскольку Set
это интерфейс, мы не можем создавать из него объекты.
Чтобы использовать функции Set
интерфейса, мы можем использовать эти классы:
- HashSet
- LinkedHashSet
- EnumSet
- TreeSet
Эти классы определены в Collections
структуре и реализуют Set
интерфейс.
Интерфейсы, расширяющие Set
Set
Интерфейс также распространяется этими подынтерфейсы:
- SortedSet
- NavigableSet
Как пользоваться Сетом?
В Java мы должны импортировать java.util.Set
пакет, чтобы использовать Set
.
// Set implementation using HashSet Set animals = new HashSet();
Здесь мы создали так Set
называемых животных. Мы использовали HashSet
класс для реализации Set
интерфейса.
Способы установки
Set
Интерфейс включает в себя все методы Collection
интерфейса. Это потому, что Collection
это супер-интерфейс Set
.
Некоторые из часто используемых методов Collection
интерфейса, которые также доступны в Set
интерфейсе:
- add () - добавляет указанный элемент в набор
- addAll () - добавляет в набор все элементы указанной коллекции
- iterator () - возвращает итератор, который можно использовать для последовательного доступа к элементам набора
- remove () - удаляет указанный элемент из набора
- removeAll () - удаляет все элементы из набора, который присутствует в другом указанном наборе
- keepAll () - сохраняет все элементы в наборе, которые также присутствуют в другом указанном наборе
- clear () - удаляет все элементы из набора
- size () - возвращает длину (количество элементов) набора
- toArray () - возвращает массив, содержащий все элементы набора
- contains () - возвращает,
true
если набор содержит указанный элемент - containsAll () - возвращает,
true
если набор содержит все элементы указанной коллекции - hashCode () - возвращает значение хеш-кода (адрес элемента в наборе)
Чтобы узнать о других методах Set
интерфейса, посетите Java Set (официальная документация по Java).
Установить операции
Интерфейс Java Set
позволяет нам выполнять основные математические операции над множеством, такие как объединение, пересечение и подмножество.
- Union - чтобы получить объединение двух наборов x и y, мы можем использовать
x.addAll(y)
- Пересечение - чтобы получить пересечение двух множеств x и y, мы можем использовать
x.retainAll(y)
- Подмножество - чтобы проверить, является ли x подмножеством y, мы можем использовать
y.containsAll(x)
Реализация заданного интерфейса
1. Реализация класса HashSet
import java.util.Set; import java.util.HashSet; class Main ( public static void main(String() args) ( // Creating a set using the HashSet class Set set1 = new HashSet(); // Add elements to the set1 set1.add(2); set1.add(3); System.out.println("Set1: " + set1); // Creating another set using the HashSet class Set set2 = new HashSet(); // Add elements set2.add(1); set2.add(2); System.out.println("Set2: " + set2); // Union of two sets set2.addAll(set1); System.out.println("Union is: " + set2); ) )
Вывод
Набор1: (2, 3) Набор2: (1, 2) Объединение: (1, 2, 3)
Чтобы узнать больше HashSet
, посетите Java HashSet.
2. Реализация класса TreeSet
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; class Main ( public static void main(String() args) ( // Creating a set using the TreeSet class Set numbers = new TreeSet(); // Add elements to the set numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("Set using TreeSet: " + numbers); // Access Elements using iterator() System.out.print("Accessing elements using iterator(): "); Iterator iterate = numbers.iterator(); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
Вывод
Установить с помощью TreeSet: (1, 2, 3) Доступ к элементам с помощью iterator (): 1, 2, 3,
Чтобы узнать больше TreeSet
, посетите Java TreeSet.
Теперь, когда мы знаем , что Set
есть, мы увидим его реализацию в классах , как EnumSet
, HashSet
, LinkedHashSet
и TreeSet
в последующих уроках.