Ich versuche, ein Programm zu schreiben, das über eine Reihe von Sätzen iteriert. Im folgenden Beispielcode erhalte ich einen Fehler, der besagt, dass iter.next() vom Typ object und nicht von einer Menge von Strings ist. Ich habe noch andere mysteriösere Probleme mit der Wiederholung von Sets. Irgendwelche Vorschläge?Iterieren über Sätze von Sets
Set<String> dogs= new HashSet<String>();
dogs.add("Irish Setter");
dogs.add("Poodle");
dogs.add("Pug");
dogs.add("Beagle");
Set<String> cats = new HashSet<String>();
cats.add("Himalayan");
cats.add("Persian");
Set<Set<String>> allAnimals = new HashSet<Set<String>>();
allAnimals.add(cats);
allAnimals.add(dogs);
Iterator iter = allAnimals.iterator();
System.out.println(allAnimals.size());
while (iter.hasNext())
{
System.out.println(iter.next().size());
}
Eine verwandte Frage mit dem gleichen Aufbau (minus der Schleife).
Das folgende Codefragment führt zu einer endgültigen Ausgabe, die Tilden enthält. Aber ich möchte nicht alle Tiere ändern, während ich gehe! Wie kann ich die Erweiterung bearbeiten, ohne den größeren Satz (allAnimals) zu beeinflussen?
for (Set<String> extension : allAnimals)
{
System.out.println("Set size: " + extension.size());
extension.add("~");
System.out.println(extension);
}
System.out.println(allAnimals);
Sie müssen 'someSet.clear(); nicht direkt nach dem Erstellen eines Sets aufrufen. – dasblinkenlight
Danke! Ich bin nervös, weil ich keine Variablen initiiere, also bin ich manchmal über Bord gegangen. – user2623054