Интерфейс набора Java

В этом руководстве мы узнаем об интерфейсе 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в последующих уроках.

Интересные статьи...