我的联合方法不起作用,如何解决?

时间:2018-11-20 17:52:05

标签: java

因此,教授给我提供了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;
   } 

1 个答案:

答案 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);