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(tmp)
にans.add(new ArrayList<>(tmp))
を変更するとことがわかります。それは動作しません...だから私は尋ねたい、なぜですか? ans.add(new ArrayList<>(tmp))
とans.add(tmp)
の違いは何ですか?これら2つのJava arrayList.add(の違いは何ですか)