Leeren und Klonen
Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy — Lektion 27 von 59.
Die clear()-Methode entfernt alle Elemente aus einem HashSet und lässt es leer.
Die clone()-Methode gibt eine flache Kopie der HashSet zurück. (Die Elemente selbst werden nicht geklont.)
Zum Beispiel, erstellen Sie zuerst eine HashSet:
HashSet<String> set = new HashSet<>();
set.add("Coddy");Um den Set zu klonen:
HashSet<String> clonedSet = (HashSet<String>) set.clone();
System.out.println(clonedSet);
// Output: [Coddy]Das Set leeren:
set.clear();
System.out.println(set.isEmpty());
// Output: trueWarum brauchen wir Casting mit clone()?
Sie haben bereits über Casting mit primitiven Typen gelernt (wie int x = (int) 3.14). Dasselbe Konzept gilt für Objekte, aber aus einem anderen Grund.
Die clone()-Methode gibt einen generischen Object-Typ zurück, keinen spezifischen HashSet<String>. Dies liegt daran, dass clone() in der Object-Klasse definiert ist und nicht weiß, welchen Typ Sie klonen.
// Was clone() zurückgibt:
Object cloneResult = set.clone(); // Gibt Object zurück, nicht HashSet<String>
// Was wir brauchen:
HashSet<String> clonedSet = (HashSet<String>) set.clone(); // Cast Object → HashSet<String>Der Cast teilt Java mit: „Ich weiß, dass dieses Object tatsächlich ein HashSet<String> ist, also behandle es als solches.“
Ohne den Cast erhältst du einen Kompilierungsfehler, weil Java Object nicht automatisch in HashSet<String> umwandelt.
Aufgabe
EinfachErstellen Sie eine Methode namens <strong>processSet</strong>, die einen HashSet von Strings als Eingabe nimmt. Die Methode sollte:
- Den Set klonen.
- Den ursprünglichen Set leeren.
- Den geklonten Set und seine Größe im Format ausgeben:
Cloned Set: [elements]Cloned Set Size: X - Den ursprünglichen Set (nach dem Leeren) und seine Größe im Format ausgeben:
Original Set after clear: [elements]Original Set Size: Y
Spickzettel
Die clear()-Methode entfernt alle Elemente aus einem HashSet:
set.clear();Die clone()-Methode gibt eine flache Kopie des HashSets zurück:
HashSet<String> clonedSet = (HashSet<String>) set.clone();Warum Casting benötigt wird: Die clone()-Methode gibt einen generischen Object-Typ zurück, daher müssen Sie ihn zu HashSet<String> casten, um ihn als spezifischen Typ zu verwenden.
Beispielverwendung:
HashSet<String> set = new HashSet<>();
set.add("Coddy");
// Clone the set (cast Object → HashSet<String>)
HashSet<String> clonedSet = (HashSet<String>) set.clone();
// Clear original set
set.clear();
System.out.println(set.isEmpty()); // Output: true
System.out.println(clonedSet); // Output: [Coddy] (clone unaffected)Probier es selbst
import java.util.HashSet;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
@SuppressWarnings("unchecked")
public class Main {
public static void processSet(HashSet<String> set) {
// Schreibe deinen Code hier
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String setString = scanner.nextLine();
Type setType = new TypeToken<HashSet<String>>(){}.getType();
HashSet<String> set = new Gson().fromJson(setString, setType);
processSet(set);
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen der 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysZusammenfassung - 2D-ArraysMatrixaddition & SubtraktionJagged Arrays3D-Arrays und darüber hinausGängige 2D-Array-MusterZusammenfassung - Alles über Arrays2HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenWerte abrufenPrüfen, ob ein Schlüssel existiertWörterbücher modifizierenZusammenfassung - HashMap3HashMap Teil 2
HashMap-MethodenMit keySet() iterierenMit entrySet() iterierenVerschachtelte HashMapZusammenfassung - Lager verwaltenZusammenfassung - HashMap-Operationen6Erweiterter Steuerungsfluss
Beschriftete AnweisungenSwitch-AusdruckMusterabgleichSchutzklauselnZusammenfassung - Steuerungsfluss9Projekt - Einzigartiger Wortzähler
Texteingabe und SpeicherungWortverarbeitung