我正在嘗試執行Java教程「Building Java Programs」第4版中提到的Java問題。問題是第11章中的編號11,頁面751:如何在單獨的主類中調用HashSet方法
編寫一個名爲symmetricSetDifference的方法,該方法接受兩個集作爲參數並返回一個包含它們的對稱差的新集(也就是包含在兩個例如:集合[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);
}
的問題是,我得到一個「非法表達式」的錯誤了一系列「找不到標識錯誤一起我想知道如果任何人有什麼我可以做任何指針。 ?(我檢查過是否有任何重複的問題,並且找不到任何類似的東西,因此如果有問題,請事先道歉)
https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html。顯然,你不明白什麼方法論點。閱讀我鏈接到的教程。 –
確保你確實傳入'Set'而不是'List'。另外,發佈堆棧跟蹤在尋求幫助時很有用。 – linuxNoob
檢查。我已經將方法行更改爲public static Set symmetricSetDifference(Set set1,Set set2)並刪除了兩個hashSet調用,但我仍然無法調用主類中的方法。 –