首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单独的主类中调用HashSet方法

如何在单独的主类中调用HashSet方法
EN

Stack Overflow用户
提问于 2017-11-04 06:37:09
回答 1查看 461关注 0票数 0

我正在尝试做一个Java问题,这是教科书“构建Java程序”第四版中提到的。问题是第11章第751页的第11条:

例如,编写一个名为symmetricSetDifference的方法,该方法接受两个集合作为参数,并返回一个包含它们的对称差异的新集合(即,包含在两个集合中的任何一个集合中的元素集合,但不是两个集合中的元素集合):集合1,4,7,9和2,4,5,6,7之间的差异是1,2,5,6,9。

symmetricSetDifference方法:

代码语言:javascript
复制
public static Set<Integer>symmetricSetDifference(Set<Integer>list1, Set<Integer>list2) {
        Set<Integer>set1 = new HashSet<>();
        set1.add(1);
        set1.add(4);
        set1.add(7);
        set1.add(9);

        Set<Integer>set2 = new HashSet<>();
        set2.add(2);
        set2.add(4);
        set2.add(5);
        set2.add(6);
        set2.add(7);

        Set<Integer>diff = new HashSet<>(set1);
        diff.addAll(set2);
        Set<Integer>curr = new HashSet<>(set1);
        curr.retainAll(set2);
        diff.removeAll(curr);

        System.out.println(diff);
        return diff;

    }

这是主类。它在一个单独的文件中:

代码语言:javascript
复制
public class TestPointClass {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

       newSet = MyUtils.symmetricSetDifference(List1, List2);
}

问题是我得到了一个“非法表达式”错误,以及一系列“找不到标识符错误。我想知道是否有人对我能做什么有什么建议?”(我已经检查了任何重复的问题,但找不到任何类似的问题,因此如果有的话,请提前道歉)

EN

回答 1

Stack Overflow用户

发布于 2017-11-04 07:18:58

在方法外部设置两个集合(set1,set2),并将它们作为参数添加:

代码语言:javascript
复制
 Set<Integer>set1 = new HashSet<>();
    set1.add(1);
    ...

    Set<Integer>set2 = new HashSet<>();
    set2.add(2);
    ...

   MyUtils.symmetricSetDifference(set1 , set2 );

如果你想使用返回类型,你必须这样做:

代码语言:javascript
复制
Set<Integer> result = MyUtils.symmetricSetDifference(set1 , set2 );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47105318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档