Ich erwarte, dass der folgende Code mir eine Teilmenge und eine komplementäre Menge geben würde.Wie Set.contains() entscheidet, ob es eine Teilmenge ist oder nicht?
Aber eigentlich zeigt das Ergebnis, dass "Fehler: Dies ist keine Untermenge!"
Was it.next() bekommen und meinen Code zu überarbeiten, um das gewünschte Ergebnis zu bekommen? Danke!
package Chapter8;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Three {
int n;
Set<Integer> set = new HashSet<Integer>();
public static void main(String args[]) {
Three three = new Three(10);
three.display(three.set);
Set<Integer> test = new HashSet<Integer>();
Iterator<Integer> it = three.set.iterator();
while(it.hasNext()) {
test.add(it.next());
three.display(test);
three.display(three.complementarySet(test));
}
}
boolean contains(Set<Integer> s) {
if (this.set.contains(s))
return true;
else
return false;
}
Set<Integer> complementarySet(Set<Integer> s) {
if(this.set.contains(s)){
Set<Integer> result = this.set;
result.removeAll(s);
return result;
}
else {
System.out.println("Error: This is not a subset!");
return null;
}
}
Three() {
this.n = 3;
this.randomSet();
}
Three(int n) {
this.n = n;
this.randomSet();
}
void randomSet() {
while(set.size() < n) {
set.add((int)(Math.random()*10));
}
}
void display(Set<Integer> s) {
System.out.println("The set is " + s.toString());
}
}
Sie müssen Set api wissen, bevor Sie Set verwenden. Bitte beachten Sie mein Tutorial [Internes Leben von HashSet] (http://volodial.blogspot.com/2013/07/internal-life-of-hashset-in-java.html) –
@VolodymyrLevytskyi Ihr Link ist kaputt, ist der Artikel immer noch woanders verfügbar? – Noumenon