set interface java
Dieses Java Set-Tutorial erklärt alles über die Set-Schnittstelle in Java. Es wird beschrieben, wie Sie durch einen Satz iterieren, Methoden festlegen, implementieren, auf Liste setzen usw.:
In Java festgelegt ist eine Schnittstelle, die Teil des Java Collection Framework ist und die Collection-Schnittstelle implementiert. Eine Mengenauflistung bietet die Funktionen einer mathematischen Menge.
Ein Satz kann als Sammlung ungeordneter Objekte definiert werden und keine doppelten Werte enthalten. Da die festgelegte Schnittstelle die Collection-Schnittstelle erbt, implementiert sie alle Methoden der Collection-Schnittstelle.
=> Lesen Sie hier den perfekten Java-Schulungsleitfaden.
Was du lernen wirst:
Java Set
Die eingestellte Schnittstelle wird durch Klassen und Schnittstellen implementiert, wie in der folgenden Abbildung gezeigt.
Wie im obigen Diagramm gezeigt, wird die Set-Schnittstelle von den Klassen HashSet, TreeSet, LinkedHashSet und EnumSet geerbt. Die Schnittstellen SortedSet und NavigableSet implementieren auch die Set-Schnittstelle.
Einige der wichtigen Merkmale der Set-Schnittstelle sind nachstehend aufgeführt:
- Die Set-Schnittstelle ist Teil des Java Collections Framework.
- Die eingestellte Schnittstelle ermöglicht eindeutige Werte.
- Es kann höchstens einen Nullwert haben.
- Java 8 bietet eine Standardmethode für die festgelegte Schnittstelle - Spliterator.
- Die Set-Schnittstelle unterstützt die Indizes der Elemente nicht.
- Die Set-Schnittstelle unterstützt Generika.
Wie erstelle ich ein Set?
Die Set-Schnittstelle in Java ist Teil des Pakets java.util. Um eine festgelegte Schnittstelle in das Programm aufzunehmen, müssen wir eine der folgenden Importanweisungen verwenden.
import java.util.*;
oder
import java.util.Set;
Sobald die Set-Interface-Funktionalität im Programm enthalten ist, können wir einen Set in Java mit einer der unten gezeigten Set-Klassen (Klassen, die Set-Interface implementieren) erstellen.
Set colors_Set = new HashSet();
Wir können dieses Set-Objekt dann initialisieren, indem wir ihm mithilfe der add-Methode einige Elemente hinzufügen.
colors_Set.add(“Red”); colors_Set.add(“Green”); colors_Set.add(“Blue”);
Beispiel in Java setzen
Implementieren wir ein einfaches Beispiel in Java, um die Set-Schnittstelle zu demonstrieren.
import java.util.*; public class Main { public static void main(String[] args) { // Set demo with HashSet Set Colors_Set = new HashSet(); Colors_Set.add('Red'); Colors_Set.add('Green'); Colors_Set.add('Blue'); Colors_Set.add('Cyan'); Colors_Set.add('Magenta'); //print set contents System.out.print('Set contents:'); System.out.println(Colors_Set); // Set demo with TreeSet System.out.print('
Sorted Set after converting to TreeSet:'); Set tree_Set = new TreeSet(Colors_Set); System.out.println(tree_Set); } }
Ausgabe:
Set-Inhalt: [Rot, Cyan, Blau, Magenta, Grün]
Sortiertes Set nach der Konvertierung in TreeSet: [Blau, Cyan, Grün, Magenta, Rot]
Iterieren Sie durch Set in Java
Wir können mit verschiedenen Ansätzen auf jedes der Elemente eines Sets zugreifen. Wir werden diese Ansätze unten diskutieren.
Iterator verwenden
Wir können einen Iterator definieren, der ein festgelegtes Objekt durchläuft. Mit diesem Iterator können wir auf jedes Element im Set zugreifen und es verarbeiten.
Das folgende Java-Programm demonstriert das Durchlaufen der Menge und druckt die Mengenelemente.
import java.util.*; import java.util.HashSet; public class Main { public static void main(String args[]) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); // Create an iterator for the cities_Set Iterator iter = cities_Set.iterator(); // print the set contents using iterator System.out.println('Values using Iterator: '); while (iter.hasNext()) { System.out.print(iter.next()+ ' '); } } }
Ausgabe:
HashSet: [Bangaluru, Pune, Kolkata, Hyderabad]
Werte mit Iterator:
Bangalore Pune Kolkata Hyderabad
Verwenden der For-Each-Schleife
Wir können auch die for-each-Schleife verwenden, um auf die Elemente in einer Menge zuzugreifen. Hier durchlaufen wir die Menge in einer Schleife.
Das folgende Programm demonstriert dies.
import java.util.*; import java.util.HashSet; public class Main { public static void main(String args[]) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); System.out.println('
Set contents using forEach loop:'); // print the set contents using forEach loop for(String val : cities_Set) { System.out.print(val + ' '); } } }
Ausgabe:
HashSet: [Bangaluru, Pune, Kolkata, Hyderabad]
Legen Sie den Inhalt mit der forEach-Schleife fest:
Bangalore Pune Kolkata Hyderabad
Verwenden der Java 8 Stream-API
Wir können Set-Elemente auch mithilfe der Java 8-Stream-API iterieren und darauf zugreifen. In diesem Fall generieren wir einen Stream aus einer Menge und iterieren dann mithilfe der forEach-Schleife durch den Stream.
Das folgende Java-Programm demonstriert die Iteration des Satzes mithilfe der Java 8-Stream-API.
import java.util.*; import java.util.HashSet; import java.util.stream.*; public class Main { public static void main(String args[]) { // Create a HashSet object and initialize it Set cities_Set = new HashSet(); cities_Set.add('Bangaluru'); cities_Set.add('Pune'); cities_Set.add('Hyderabad'); cities_Set.add('Kolkata'); // Print the set contents System.out.println('HashSet: ' + cities_Set); System.out.println('
Set contents using Java 8 stream API:'); //generate a stream from set Stream stream = cities_Set.stream(); //iterate the stream using forEach loop to print the elements stream.forEach((element) -> { System.out.print(element + ' '); }); } }
Ausgabe:
HashSet: [Bangaluru, Pune, Kolkata, Hyderabad]
Festlegen von Inhalten mithilfe der Java 8-Stream-API:
Bangalore Pune Kolkata Hyderabad
Methoden-API festlegen
Im Folgenden sind die von der Set-Schnittstelle unterstützten Methoden aufgeführt. Diese Methoden führen grundlegende Operationen wie Hinzufügen, Entfernen, Enthalten usw. zusammen mit den anderen Operationen aus.
Wasserfallmodell im Lebenszyklus der Softwareentwicklung
Methode | Methodenprototyp | Beschreibung |
---|---|---|
ist leer | boolean isEmpty () | Überprüft, ob das Set leer ist |
hinzufügen | Boolesches Addieren (E e) | Fügt das Element e zur Menge hinzu, wenn es nicht in der Menge vorhanden ist |
füge alle Hinzu | boolean addAll (Sammlung c) | Fügt das Element der Sammlung c zur Menge hinzu. |
entfernen | boolean remove (Objekt o) | Löscht das angegebene Element o aus der Menge. |
alles entfernen | boolean removeAll (Sammlung c) | Entfernt die in der angegebenen Sammlung c vorhandenen Elemente aus dem Satz. |
enthält | Boolescher Wert enthält (Objekt o) | Überprüft, ob das angegebene Element o in der Menge vorhanden ist. Gibt true zurück, wenn ja. |
enthältAll | Boolescher Wert enthältAll (Sammlung c) | Überprüft, ob der Satz alle Elemente in der angegebenen Sammlung enthält. Gibt true zurück, wenn ja. |
behaltenAlle | boolean keepAll (Sammlung c) | Set behält alle Elemente in der angegebenen Sammlung bei. C. |
klar | void clear () | Löscht die Menge, indem alle Elemente aus der Menge gelöscht werden |
Iterator | Iterator iterator () | Wird verwendet, um den Iterator für die Menge zu erhalten |
toArray | Objekt [] toArray () | Konvertiert die Menge in eine Array-Darstellung, die alle Elemente in der Menge enthält. |
Größe | int size () | Gibt die Gesamtzahl der Elemente oder die Größe des Satzes zurück. |
Hash-Code | Hash-Code () | Gibt den Hashcode der Menge zurück. |
Lassen Sie uns nun einige der oben beschriebenen Methoden in einem Java-Programm implementieren. Wir werden auch die folgenden spezifischen Operationen sehen, die zwei Sätze umfassen.
Festlegen der Implementierung in Java
Überschneidung: Wir behalten gemeinsame Werte zwischen den beiden Mengen bei. Wir führen eine Kreuzung mit dem durch behaltenAlle Methode.
Union: Hier kombinieren wir die beiden Sätze. Dies geschieht mit dem füge alle Hinzu Methode.
Unterschied: Dieser Vorgang entfernt einen Satz vom anderen. Dieser Vorgang wird mit dem ausgeführt alles entfernen Methode.
import java.util.*; public class Main { public static void main(String args[]) { //declare a set class (HashSet) Set numSet = new HashSet(); //add an element => add numSet.add(13); //add a list to the set using addAll method numSet.addAll(Arrays.asList(new Integer[] {1,6,4,7,3,9,8,2,12,11,20})); //print the set System.out.println('Original Set (numSet):' + numSet); //size() System.out.println('
numSet Size:' + numSet.size()); //create a new set class and initialize it with list elements Set oddSet = new HashSet(); oddSet.addAll(Arrays.asList(new Integer[] {1, 3, 7, 5, 9})); //print the set System.out.println('
OddSet contents:' + oddSet); //contains () System.out.println('
numSet contains element 2:' + numSet.contains(3)); //containsAll () System.out.println('
numSet contains collection oddset:' + numSet.containsAll(oddSet)); // retainAll () => intersection Set set_intersection = new HashSet(numSet); set_intersection.retainAll(oddSet); System.out.print('
Intersection of the numSet & oddSet:'); System.out.println(set_intersection); // removeAll () => difference Set set_difference = new HashSet(numSet); set_difference.removeAll(oddSet); System.out.print('Difference of the numSet & oddSet:'); System.out.println(set_difference); // addAll () => union Set set_union = new HashSet(numSet); set_union.addAll(oddSet); System.out.print('Union of the numSet & oddSet:'); System.out.println(set_union); } }
Ausgabe:
Originalset (numSet): [1, 2, 3, 4, 20, 6, 7, 8, 9, 11, 12, 13]
numSet Größe: 12
OddSet-Inhalt: [1, 3, 5, 7, 9]
numSet enthält Element 2: true
numSet enthält eine ungerade Sammlung: false
Schnittpunkt von numSet & oddSet: [1, 3, 7, 9]
Unterschied zwischen numSet und oddSet: [2, 4, 6, 8, 11, 12, 13, 20]
Vereinigung von numSet & oddSet: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 20]
Auf Array setzen
Wir haben die Methode 'toArray' im obigen Abschnitt über Methoden gesehen. Diese toArray-Methode kann verwendet werden, um den Satz in ein Array zu konvertieren.
Das folgende Java-Programm konvertiert das Set in ein Array.
import java.util.*; public class Main { public static void main(String[] args) { //declare a set class (HashSet) Set setOfColors= new HashSet(); // add data to HashSet setOfColors.add('Red'); setOfColors.add('Green'); setOfColors.add('Blue'); setOfColors.add('Cyan'); setOfColors.add('Magenta'); //print the set System.out.println('The set contents:' + setOfColors); //convert Set to Array using toArray () method String colors_Array[] = setOfColors.toArray(new String[setOfColors.size()]); //print the Array System.out.println('Set converted to Array:' + Arrays.toString(colors_Array)); } }
Ausgabe:
Der Inhalt des Sets: [Rot, Cyan, Blau, Magenta, Grün]
In Array konvertiertes Set: [Rot, Cyan, Blau, Magenta, Grün]
Zu setzendes Array
Um ein Array in eine Menge in Java zu konvertieren, können Sie zwei Ansätze verfolgen, wie unten gezeigt.
# 1) Wir können das Array mit der asList-Methode in eine Liste konvertieren und diese Liste dann als Argument an den Set-Konstruktor übergeben. Dies führt dazu, dass das Set-Objekt mit den Array-Elementen erstellt wird.
#zwei) Alternativ können wir die Collections.addAll-Methode verwenden, um die Array-Elemente in das Set-Objekt zu kopieren.
Das folgende Java-Programm implementiert beide Ansätze, um ein Array in set zu konvertieren.
import java.util.*; public class Main { public static void main(String[] args) { //declare an array Integer[] numArray = {10,50,40,20,60,30,80,70}; System.out.println('The input array:' + Arrays.toString(numArray)); //Approach 1: create a set class and provide array //converted to list as constructor arg Set numSet = new HashSet(Arrays.asList(numArray)); //print the set System.out.println('
Array converted to set through asList:' + numSet); //create another set Set intSet = new HashSet(); //Approach 2: use Collections.addAll method to copy array elements to the set Collections.addAll(intSet, numArray); //print the set System.out.println('
Array converted to set using Collections.addAll:' + intSet); } }
Ausgabe:
Das Eingabearray: [10, 50, 40, 20, 60, 30, 80, 70]
Array konvertiert, um über asList gesetzt zu werden: [80, 50, 20, 70, 40, 10, 60, 30]
Array mit Collections.addAll in Set konvertiert: [80, 50, 20, 70, 40, 10, 60, 30]
Auf Liste setzen
Zum Konvertieren von Sets in eine Liste in Java können Sie die Methode 'addAll' der Listenklasse verwenden. Diese Methode kopiert den Inhalt des Satzes oder einer als Argument bereitgestellten Sammlung in die Liste, die die addAll-Methode aufruft.
Das folgende Java-Programm konvertiert den Satz in eine ArrayList.
import java.util.*; public class Main { public static void main(String[] args) { //declare a set class and initialize it Set strSet= new HashSet(); strSet.add('one'); strSet.add('two'); strSet.add('three'); strSet.add('four'); strSet.add('five'); //print the set System.out.println('The set contents: ' + strSet); //declare an ArrayList List strList = new ArrayList(); //using addAll method,copy set elements to ArrayList strList.addAll(strSet); //print the ArrayList System.out.println('The ArrayList from set : ' + strList); } }
Ausgabe:
Der Inhalt des Sets: [vier, eins, zwei, drei, fünf]
Die ArrayList aus der Menge: [vier, eins, zwei, drei, fünf]
Zu setzende Liste
Um die angegebene Liste wie ArrayList in eine Menge in Java zu konvertieren, übergeben wir das Listenobjekt als Argument an den Konstruktor der Menge.
Das folgende Java-Programm implementiert diese Konvertierung.
import java.util.*; public class Main { public static void main(String[] args) { //declare an ArrayList and initialize it List strList = new ArrayList(); strList.add('one'); strList.add('two'); strList.add('three'); strList.add('four'); strList.add('five'); //print the ArrayList System.out.println('The ArrayList: ' + strList); //declare a set class with ArrayList as argument to the constructor Set strSet= new HashSet(strList); //print the set System.out.println('The Set obtained from ArrayList: ' + strSet); } }
Ausgabe:
Die ArrayList: [eins, zwei, drei, vier, fünf]
Das von ArrayList erhaltene Set: [vier, eins, zwei, drei, fünf]
Sortieren Sie einen Satz in Java
Die Set-Auflistung in Java verfügt über keine direkte Sortiermethode. Wir müssen also einige indirekte Ansätze verfolgen, um den Inhalt des festgelegten Objekts zu sortieren oder zu ordnen. Es gibt jedoch eine Ausnahme, wenn das festgelegte Objekt ein TreeSet ist.
Das TreeSet-Objekt stellt standardmäßig den geordneten Satz bereit. Wenn wir uns also für die geordnete Menge von Elementen interessieren, sollten wir uns für TreeSet entscheiden. Zum HashSet oder LinkedHashSet-Objekte können wir das Set in List konvertieren. Sortieren Sie die Liste mit der Methode Collections.sort () und konvertieren Sie die Liste zurück in set.
Dieser Ansatz wird im folgenden Java-Programm gezeigt.
import java.util.Arrays; import java.util.Collections; import java.util.*; public class Main{ public static void main(String[] args) { //Declare a set and initialize it with unsorted list HashSet evenNumSet = new LinkedHashSet( Arrays.asList(4,8,6,2,12,10,62,40,36) ); //print the unsorted set System.out.println('Unsorted Set: ' + evenNumSet); //convert set to list List numList = new ArrayList(evenNumSet); //Sort the list using Collections.sort () method Collections.sort(numList); //convert set to list evenNumSet = new LinkedHashSet(numList); //convert list to set //Print the sorted set System.out.println('Sorted Set:' + evenNumSet); } }
Ausgabe:
Unsortiertes Set: [4, 8, 6, 2, 12, 10, 62, 40, 36]
Sortiertes Set: [2, 4, 6, 8, 10, 12, 36, 40, 62]
beste Bildschirmaufnahme-Software Windows 10
Liste Vs Set In Java
Lassen Sie uns einige der Unterschiede zwischen einer Liste und einem Satz diskutieren.
Liste | einstellen |
---|---|
Nullwerte sind zulässig. | Es ist nur ein Nullwert zulässig. |
Implementiert die Listenschnittstelle. | Implementiert Set-Schnittstelle. |
Enthält eine Legacy-Klasse, Vector. | Keine Legacy-Klassen. |
ArrayList, LinkedList ist List Interface-Implementierungen. | HashSet, TreeSet, LinkedHashSet sind Set-Implementierungen. |
Eine geordnete Folge von Elementen. | Eine ungeordnete Sammlung verschiedener Elemente. |
Ermöglicht Duplikate. | Duplikate sind nicht erlaubt. |
Zugriff auf Elemente gemäß der Position des Elements. | Kein Positionszugriff. |
Neue Methoden, die in einer Listenschnittstelle definiert sind. | In der Set-Schnittstelle sind keine neuen Methoden definiert. Sammlungsschnittstellenmethoden sind mit Set-Unterklassen zu verwenden. |
Kann mit ListIterator in Vorwärts- und Rückwärtsrichtung durchlaufen werden. | Es kann mit Iterator nur in Vorwärtsrichtung durchfahren werden. |
Häufig gestellte Fragen
F # 1) Was ist ein Set in Java?
Antworten: Eine Menge ist eine ungeordnete Sammlung einzigartiger Elemente und modelliert normalerweise das Konzept der Menge in der Mathematik.
Set ist eine Schnittstelle, die die Collection-Schnittstelle erweitert. Es enthält die Methoden, die es von der Collection-Schnittstelle erbt. Die eingestellte Schnittstelle fügt nur eine Einschränkung hinzu, d. H. Es sollten keine Duplikate zulässig sein.
Q # 2)Ist das Set in Java bestellt?
Antworten: Java Set ist nicht bestellt. Es bietet auch keinen Positionszugriff.
Q # 3)Kann ein Set Duplikate enthalten?
Antworten: Ein Set ist eine Sammlung eindeutiger Elemente und darf keine Duplikate enthalten.
Q # 4)Ist Java Set iterierbar?
Antworten: Ja. Die Set-Schnittstelle implementiert eine Iterable-Schnittstelle und somit kann Set mit einer forEach-Schleife durchlaufen oder iteriert werden.
Q # 5)Ist NULL im Set erlaubt?
Antworten: Eine Menge erlaubt einen Nullwert, aber höchstens einen Nullwert ist in Mengenimplementierungen wie HashSet und LinkedHashSet erlaubt. Im Fall von TreeSet wird eine Laufzeitausnahme ausgelöst, wenn die Null angegeben wird.
Fazit
In diesem Tutorial haben wir die allgemeinen Konzepte und Implementierungen im Zusammenhang mit der Set-Schnittstelle in Java erläutert.
Für die Set-Schnittstelle sind keine neuen Methoden definiert, sie verwendet jedoch die Methoden der Collector-Schnittstelle und fügt nur eine Implementierung hinzu, um doppelte Werte zu verhindern. Die Menge erlaubt höchstens einen Nullwert.
In unseren nachfolgenden Tutorials werden wir bestimmte Implementierungen der Set-Schnittstelle wie HashSet und TreeSet diskutieren.
=> Besuchen Sie hier, um Java von Grund auf neu zu lernen.
Literatur-Empfehlungen
- Java Reflection Tutorial mit Beispielen
- JAVA-Tutorial für Anfänger: Über 100 praktische Java-Video-Tutorials
- Java String enthält () Method Tutorial mit Beispielen
- Jagged Array In Java - Tutorial mit Beispielen
- Java Scanner Class Tutorial mit Beispielen
- Java Array Length Tutorial mit Codebeispielen
- Java String Tutorial | Java-String-Methoden mit Beispielen
- Was ist Java Vector? Java Vector Class Tutorial mit Beispielen