logo

Set v Javě

The soubor je rozhraní dostupné v java.util balík. The soubor rozhraní rozšiřuje rozhraní kolekce. Neuspořádaná sbírka nebo seznam, ve kterém nejsou povoleny duplikáty, se označuje jako a sběrné rozhraní . Rozhraní množiny se používá k vytvoření matematické množiny. Rozhraní sady používá metody sběrného rozhraní, aby se zabránilo vkládání stejných prvků. SortedSet a NavigableSet jsou dvě rozhraní, která rozšiřují implementaci sady.

Set v Javě

Ve výše uvedeném diagramu je NavigableSet a SortedSet jsou obě rozhraní. The NavigableSet rozšiřuje SortedSet, takže neuchová pořadí vložení a uloží data seřazeným způsobem.

SetExample1.java

 import java.util.*; public class setExample{ public static void main(String[] args) { // creating LinkedHashSet using the Set Set data = new LinkedHashSet(); data.add('JavaTpoint'); data.add('Set'); data.add('Example'); data.add('Set'); System.out.println(data); } } 

Výstup:

Set v Javě

Poznámka: V celé sekci jsme zkompilovali program s názvem souboru a spustili program s názvem třídy. Protože název souboru a název třídy se liší.

Operace na rozhraní Set

Na množině můžeme provádět všechny základní matematické operace jako průnik, sjednocení a rozdíl.

char + int v jazyce Java

Předpokládejme, že máme dvě množiny, tj. množina1 = [22, 45, 33, 66, 55, 34, 77] a množina2 = [33, 2, 83, 45, 3, 12, 55]. Na Setu můžeme provést následující operace:

    Průsečík:Operace průnik vrátí všechny prvky, které jsou přítomny v obou množinách. Průsečík množiny1 a množiny2 bude [33, 45, 55].Svaz:Operace sjednocení vrátí všechny prvky sady1 a sady2 v jedné sadě a tato sada může být sada1 nebo sada2. Sjednocení množiny1 a množiny2 bude [2, 3, 12, 22, 33, 34, 45, 55, 66, 77, 83].Rozdíl:Operace rozdíl odstraní hodnoty ze sady, které jsou přítomny v jiné sadě. Rozdíl množiny1 a množiny2 bude [66, 34, 22, 77].

v sadě, přidat vše() metoda se používá k provedení spojení, zachovat vše() metoda se používá k provedení průniku a odebrat všechny() metoda se používá k provedení rozdílu. Vezměme si příklad, abychom pochopili, jak se tyto metody používají k provádění operací průniku, sjednocení a rozdílu.

SetExample2.java

 import java.util.*; public class SetOperations { public static void main(String args[]) { Integer[] A = {22, 45,33, 66, 55, 34, 77}; Integer[] B = {33, 2, 83, 45, 3, 12, 55}; Set set1 = new HashSet(); set1.addAll(Arrays.asList(A)); Set set2 = new HashSet(); set2.addAll(Arrays.asList(B)); // Finding Union of set1 and set2 Set union_data = new HashSet(set1); union_data.addAll(set2); System.out.print('Union of set1 and set2 is:'); System.out.println(union_data); // Finding Intersection of set1 and set2 Set intersection_data = new HashSet(set1); intersection_data.retainAll(set2); System.out.print('Intersection of set1 and set2 is:'); System.out.println(intersection_data); // Finding Difference of set1 and set2 Set difference_data = new HashSet(set1); difference_data.removeAll(set2); System.out.print('Difference of set1 and set2 is:'); System.out.println(difference_data); } } 

Výstup:

Set v Javě

Popis:

Ve výše uvedeném kódu nejprve vytvoříme dvě pole, tj. A a B typu integer. Poté vytvoříme dvě sady, tj. sadu1 a sadu2 typu integer. Pole převedeme na seznam a přidáme prvky pole A do sady1 a prvky pole B do sady2.

Pro provedení spojení vytvoříme novou sadu union_data se stejným prvkem množiny1. Potom zavoláme metodu addAll() set a předáme jí jako argument set2. Tato metoda přidá všechny tyto prvky do union_data které v něm nejsou přítomny a dává spojení obou množin.

Pro provedení průniku vytvoříme novou množinu průsečík_data se stejným prvkem množiny1. Potom zavoláme metodu keepAll() set a předáme jí jako argument sadu set2. Tato metoda získá všechny tyto prvky z průsečík_data které jsou přítomny v sadě2 a ukládají je do intersection_data. Intersection_data nyní obsahuje průsečíkovou hodnotu obou sad.

Pro provedení rozdílu vytvoříme novou sadu rozdílová_data se stejným prvkem množiny1. Poté zavoláme metodu removeAll() set a předáme jí jako argument set2. Tato metoda odstraní všechny tyto prvky z rozdílová_data které jsou přítomny v množině2 a udává rozdíl obou množin.

Nastavit metody

V rozhraní množin je k dispozici několik metod, kterými můžeme na našich množinách provést určitou operaci. Tyto metody jsou následující:

1) přidat()

Metoda add() vloží do sady novou hodnotu. Metoda vrací true a false v závislosti na přítomnosti prvku vložení. Vrací hodnotu false, pokud je prvek již v sadě přítomen, a vrátí hodnotu true, pokud v sadě není.

Syntax:

 boolean add(type element). 

SetExample3.java

 import java.io.*; import java.util.*; public class addMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(11); data.add(61); data.add(51); System.out.println('data: ' + data); } } 

Výstup:

Set v Javě

2) addAll()

Metoda addAll() připojí všechny prvky zadané kolekce k sadě.

Syntax:

 boolean addAll(Collection data) 

SetExample4.java

 import java.io.*; import java.util.*; class addAllMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); System.out.println('Set: ' + data); ArrayList newData = new ArrayList(); newData.add(91); newData.add(71); newData.add(81); data.addAll(newData); System.out.println('Set: ' + data); } } 

Výstup:

Set v Javě

3) vymazat()

Metoda odstraní všechny prvky ze sady. Neodstraní odkaz na sadu. Vymaže pouze prvky sady.

Syntax:

 void clear() 

SetExample5.java

 import java.io.*; import java.util.*; public class clearMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); System.out.println('Set: ' + data); data.clear(); System.out.println('The final set: ' + data); } } 

Výstup:

Set v Javě

4) obsahuje()

Metoda obsahuje() se používá ke zjištění přítomnosti prvku v množině. Jeho návratová hodnota je true nebo false v závislosti na přítomnosti prvku.

Syntax:

 boolean contains(Object element) 

SetExample6.java

 import java.io.*; import java.util.*; class containsMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('Set: ' + data); System.out.println('Does the Set contains '91'?' + data.contains(91)); System.out.println('Does the Set contains 'javaTpoint'? ' + data.contains('4')); System.out.println('Does the Set contains '51'? ' + data.contains(51)); } } 

Výstup:

Set v Javě

5) obsahujeVše()

Metoda se používá ke kontrole, zda jsou všechny prvky kolekce dostupné ve stávající sadě či nikoliv. Vrátí hodnotu true, pokud jsou v sadě přítomny všechny prvky kolekce, a vrátí hodnotu false, i když jeden z prvků v existující sadě chybí.

Syntax:

 public boolean containsAll(Collection data) 

SetExample7.java

 import java.io.*; import java.util.*; class containsAllMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); Set newData = new LinkedHashSet(); newData.add(31); newData.add(21); newData.add(41); System.out.println('
Does data contains newData?: '+ data.containsAll(newData)); } } 

Výstup:

Set v Javě

6) hashCode()

Metoda se používá k odvození hodnoty hash kódu pro aktuální instanci sady. Vrací hodnotu hash kódu typu integer.

Syntax:

 public int hashCode() 

SetExample8.java

 import java.io.*; import java.util.*; class hashCodeMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); System.out.println('
The hash code value of set is:'+ data.hashCode()); } } 

Výstup:

Set v Javě

7) isEmpty()

Metoda isEmpty() se používá k identifikaci prázdnoty sady. Pokud je množina prázdná, vrátí hodnotu true a pokud množina není prázdná, vrátí hodnotu false.

Syntax:

konstruktor v Javě
 boolean isEmpty() 

SetExample9.java

 import java.io.*; import java.util.*; class isEmptyMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); System.out.println('
Is data empty?: '+ data.isEmpty()); } } 

Výstup:

Set v Javě

8) iterátor()

Metoda iterator() se používá k nalezení iterátoru sady. Iterátor se používá k získání prvku jeden po druhém.

Syntax:

 Iterator iterate_value = set1.iterator(); 

SetExample10.java

 import java.io.*; import java.util.*; class iteratorMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); Iterator newData = data.iterator(); System.out.println('The NewData values are: '); while (newData.hasNext()) { System.out.println(newData.next()); } } } 

Výstup:

Set v Javě

9) odstranit()

Metoda se používá k odstranění zadaného prvku ze sady. Jeho návratová hodnota závisí na dostupnosti prvku. Vrací hodnotu true, pokud je prvek v sadě dostupný, a vrací hodnotu false, pokud je v sadě nedostupný.

Syntax:

 boolean remove(Object O) 

SetExample11.java

 import java.io.*; import java.util.*; class removeMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); data.remove(81); data.remove(21); data.remove(11); System.out.println('data after removing elements: ' + data); } } 

Výstup:

Set v Javě

11) removeAll()

Metoda odebere všechny prvky existující sady ze zadané kolekce.

Syntax:

 public boolean removeAll(Collection data) 

SetExample12.java

verze pro Android
 import java.io.*; import java.util.*; class removeAllMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(91); data.add(71); data.add(81); System.out.println('data: ' + data); ArrayList newData = new ArrayList(); newData.add(91); newData.add(71); newData.add(81); System.out.println('NewData: ' + newData); data.removeAll(newData); System.out.println('data after removing Newdata elements : ' + data); } } 

Výstup:

Set v Javě

11) keepAll()

Metoda zachovává všechny prvky ze sady specifikované v dané kolekci.

Syntax:

 public boolean retainAll(Collection data) 

SetExample13.java

 import java.io.*; import java.util.*; class retainAllMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(91); data.add(71); data.add(81); System.out.println('data: ' + data); ArrayList newData = new ArrayList(); newData.add(91); newData.add(71); newData.add(81); System.out.println('newData: ' + newData); data.retainAll(newData); System.out.println('data after retaining newdata elements : ' + data); } } 

Výstup:

Set v Javě

12) velikost()

Metoda vrací velikost množiny.

Syntax:

 int size() 

SetExample14.java

 import java.io.*; import java.util.*; class sizeMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(91); data.add(71); data.add(81); System.out.println('data: ' + data); System.out.println('size of the data is : ' + data.size()); } } 

Výstup:

Set v Javě

13) removeAll()

Metoda se používá k vytvoření pole se stejnými prvky množiny.

Syntax:

 Object[] toArray() 

SetExample15.java

 import java.io.*; import java.util.*; class toArrayMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(91); data.add(71); data.add(81); System.out.println(&apos;data: &apos; + data); Object[] array_data = data.toArray(); System.out.println(&apos;The array is:&apos;); for (int i = 0; i <array_data.length; i++) system.out.println(array_data[i]); } < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/81/set-java-16.webp" alt="Set in Java"> <hr></array_data.length;>