[英]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.