因此,教授给我提供了HashSet.java代码。我必须使用它并创建一个联合方法。
我的Tester方法包括一些这样的代码。
Set_B.add(1);
Iterator Biter = Set_B.iterator();
System.out.print("\nSet B: ");
while(Biter.hasNext())
{
System.out.print(Biter.next() + " ");
}
System.out.println();
HashSet Set_C = Set_A.Union(Set_B);
System.out.println("\nThe Union Set is: " + Set_C);
因此,现在当我调用并集方法时,它不会返回Set_C HashSet。
这是我的联合方法。我不知道该如何解决。请帮助我,并提供有关如何使它工作的建议。
我又如何“将集合的每个成员添加到新的联合集合”(在这种情况下为“临时”)?
public HashSet Union(HashSet s1)
{
HashSet temp = new HashSet(101);//Creating a new HashSet
Iterator iter = s1.iterator();
System.out.print("The Set passed is: ");
while(iter.hasNext())
{
System.out.print(iter.next());
}
temp.add(s1);
return temp;
}
答案 0 :(得分:3)
按照惯例,Java变量名称使用驼峰大小写格式。建议您也使用它。例如,变量Biter应该是bIter,HashSet Set_C应该是setC,依此类推。
也可以遍历对象的集合,而无需显式创建迭代器。假设您的HashSet包含字符串。然后可以使用以下循环
HashSet setC = new HashSet();
//add elements here
for(String oneElement: setC){
//do something
}
现在要问的问题:您的Union方法创建一个新的HashSet(temp)并向其中添加参数HashSet(s1)的元素,但是,它永远不会将当前HashSet的(this)对象添加到temp!
在temp.add(s1)行之后添加此行:
temp.add(this);