0
public void findCombination(List<List<Integer>> ans, ArrayList<Integer> tmp, int [] candidates, int remain, int start){
if(remain < 0){
return ;
}
else if(remain == 0){
ans.add(new ArrayList<>(tmp));
}
else{
for(int i = start; i < candidates.length; i++){
tmp.add(candidates[i]);
findCombination(ans, tmp, candidates, remain-candidates[i], i);
tmp.remove(tmp.size()-1);
}
}
}
在上面的代碼中,我發現當我把ans.add(new ArrayList<>(tmp))
更改爲ans.add(tmp)
。它不會工作...所以我想問,爲什麼? ans.add(new ArrayList<>(tmp))
和ans.add(tmp)
之間有什麼區別。這兩個java有什麼區別arrayList.add()