Rozhranie sady Java

V tomto tutoriále sa dozvieme o rozhraní Set v Jave a jeho metódach.

SetRozhranie Java Collectionsrámca poskytuje funkcie matematické sady v Jave. Rozširuje Collectionrozhranie.

Na rozdiel od Listrozhrania nemôžu sady obsahovať duplicitné prvky.

Triedy, ktoré implementujú množinu

Pretože Setje to rozhranie, nemôžeme z neho vytvárať objekty.

Aby sme mohli používať funkcie Setrozhrania, môžeme použiť tieto triedy:

  • HashSet
  • LinkedHashSet
  • EnumSet
  • TreeSet

Tieto triedy sú definované v Collectionsrámci a implementujú Setrozhranie.

Rozhrania, ktoré rozširujú množinu

SetRozhranie je tiež rozšírená týmito podrozhraní:

  • Zoradené
  • NavigableSet

Ako používať Set?

V prostredí Java musíme java.util.Setna použitie importovať balík Set.

 // Set implementation using HashSet Set animals = new HashSet(); 

Tu sme vytvorili Setzvané zvieratá. Na HashSetimplementáciu Setrozhrania sme použili triedu .

Metódy nastavenia

SetRozhranie zahŕňa všetky metódy Collectionrozhrania. Je to preto, že Collectionje to super rozhranie Set.

Niektoré z bežne používaných metód Collectionrozhrania, ktoré je tiež k dispozícii v Setrozhraní, sú:

  • add () - pridá zadaný prvok do množiny
  • addAll () - pridá do sady všetky prvky určenej kolekcie
  • iterátor () - vráti iterátor, ktorý je možné použiť na postupný prístup k prvkom množiny
  • remove () - odstráni zadaný prvok z množiny
  • removeAll () - odstráni všetky prvky zo sady, ktorá sa nachádza v inej zadanej množine
  • keepAll () - zachová všetky prvky v množine, ktoré sa nachádzajú aj v inej špecifikovanej množine
  • clear () - odstráni všetky prvky zo sady
  • size () - vráti dĺžku (počet prvkov) množiny
  • toArray () - vráti pole obsahujúce všetky prvky množiny
  • contains () - vráti sa, trueak množina obsahuje zadaný prvok
  • containsAll () - vráti sa, trueak množina obsahuje všetky prvky zadanej kolekcie
  • hashCode () - vráti hodnotu hash kódu (adresa prvku v množine)

Ak sa chcete dozvedieť viac podrobností o Setrozhraní, navštívte Java Set (oficiálna dokumentácia Java).

Nastaviť operácie

Rozhranie Java Setnám umožňuje vykonávať základné matematické operácie s operáciami, ako je zjednotenie, križovatka a podmnožina.

  • Union - získať zjednotenie dvoch množín X a Y, môžeme použiťx.addAll(y)
  • Priesečník - aby sme dostali priesečník dvoch množín x a y, môžeme použiťx.retainAll(y)
  • Podmnožina - na kontrolu, či je x podmnožinou y, môžeme použiťy.containsAll(x)

Implementácia nastaveného rozhrania

1. Implementácia triedy 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); ) ) 

Výkon

 Sada 1: (2, 3) Sada 2: (1, 2) Únia je: (1, 2, 3) 

Ak sa chcete dozvedieť viac HashSet, navštívte Java HashSet.

2. Implementácia triedy 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(", "); ) ) ) 

Výkon

 Nastaviť pomocou TreeSet: (1, 2, 3) Prístup k prvkom pomocou iterátora (): 1, 2, 3, 

Ak sa chcete dozvedieť viac TreeSet, navštívte Java TreeSet.

Teraz, keď vieme, čo Setznamená, že budeme vidieť jeho implementácie v triedach, ako EnumSet, HashSet, LinkedHashSeta TreeSetv ďalších cvičeniach.

Zaujímavé články...