簡體   English   中英

如何在單獨的主類中調用HashSet方法

[英]How to call a HashSet method in separate main class

我正在嘗試做教科書“ Building Java Programs”第4版中提到的Java問題。 問題是第11章,頁751中的11:

編寫一個名為symmetricSetDifference的方法,該方法接受兩個集合作為參數,並返回一個包含其對稱差的新Set(即,兩個集合中的任何一個都包含但不是兩個都包含的元素集合)例如:兩個集合之間的差異[1,4,7,9]和[2,4,5,6,7]是[1,2,5,6,9]。

symmetricSetDifference方法:

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;

    }

這是主要的類。 在一個單獨的文件中:

public class TestPointClass {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

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

問題是我收到“非法表達式”錯誤以及一系列“找不到標識符錯誤。我想知道是否有人對我能做什么有任何指示?(我已經檢查了所有重復的問題,並且無法找到類似的東西,如果有的話,請提前道歉)

在方法之外設置兩個Set(set1,set2)並將其添加為參數:

 Set<Integer>set1 = new HashSet<>();
    set1.add(1);
    ...

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

   MyUtils.symmetricSetDifference(set1 , set2 );

如果要使用返回類型,則必須這樣做:

Set<Integer> result = MyUtils.symmetricSetDifference(set1 , set2 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM