Wie Setzen.enthält() entscheidet, ob es eine Teilmenge oder nicht?
Erwarte ich folgenden code mir geben würde, eine Teilmenge und ein ergänzender Satz.
Aber eigentlich das Ergebnis zeigt, dass "Fehler: Dies ist keine Teilmenge!"
Was es ist.next() Holen und zu überarbeiten, wie mein code, um das Ergebnis will ich?
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 wissen, Set-api, bevor Sie mit Set. Bitte behandeln Sie mein tutorial Interne Leben der HashSet
Dein link ist kaputt, ist der Artikel noch irgendwo vorhanden?
Dein link ist kaputt, ist der Artikel noch irgendwo vorhanden?
InformationsquelleAutor Zoe | 2013-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem liegt in diesem Teil:
nicht tun, was Sie denken, es tut, es nicht als argument einer anderen
Set
zu sehen, wenn sich Ihre Mitglieder befinden sich in der erstenset
. Es sieht eher, wenn der übergebene argument ist es in dem Satz.Müssen Sie zur Iteration über die "enthalten" festlegen und verwenden
set.contains(element)
für jedes element im set enthalten.InformationsquelleAutor morgano
Die Sie wahrscheinlich verwenden wollen
set.containsAll(Collection <?> C)
für die überprüfung, ob Collection(Set, in diesem Fall) ist eine Teilmenge von 'set'. Aus den docs: http://docs.oracle.com/javase/7/docs/api/java/util/Set.html#containsAll(java.util.Sammlung)InformationsquelleAutor gjain