我無法獲得此方法來修改ArrayList,然後返回修改後的ArrayList。ArrayList不會在通過方法運行後返回修改
public static ArrayList<Integer> sortAndRemoveDuplicates(ArrayList<Integer> list) {
list = new ArrayList<Integer>(new HashSet<Integer>(list));
Collections.sort(list);
//System.out.println(list);
return list;
}
當我取消的系統調用,我可以看到的是,ArrayList中被修改,而我知道,我的方法的作品,但是當我通過主運行的方法ArrayList中不受影響。爲什麼是這樣?我究竟做錯了什麼?
爲什麼不是這個修改版本的工作?
public static ArrayList<Integer> sortAndRemoveDuplicates(ArrayList<Integer> list) {
ArrayList<Integer> newList = new ArrayList<Integer>(new HashSet<Integer>(list));
Collections.sort(newList);
System.out.println(newList);
return newList;
}
**你是怎麼稱呼它的?你抓住返回的列表嗎? –
我認爲你的期望沒有得到滿足,因爲Java中的所有東西都是通過價值傳遞的。 – JamesB