繁体   English   中英

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

[英]My Union Method is not working, How can I fix it?

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

按照约定,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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM