I expect the following code to give me a subset and an extra set.
But in fact, the result shows that "Error: this is not a subset!"
What is it.next () and how to edit my code to get the result I want? Thanks!
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()); } }
source share