Я в основном пишу на C, но использую Java для этого проекта. Я хочу знать, что делает Java здесь под капотом.
ArrayList<Integer> prevRow, currRow;
currRow = new ArrayList<Integer>();
for(i =0; i < numRows; i++){
prevRow = currRow;
currRow.clear();
currRow.addAll(aBunchOfItems);
}
Копирует ли строка prevRow = currRow список или теперь prevRow указывает на тот же список, что и currRow? Если prevRow указывает на тот же список, что и currRow, я должен создать новый ArrayList вместо очистки ....
private ArrayList<Integer> someFunction(ArrayList<Integer> l){
Collections.sort(l);
return l;
}
main(){
ArrayList<Integer> list = new ArrayList<Integer>(Integer(3), Integer(2), Integer(1));
list = someFunction(list); //Option 1
someFunction(list); //Option 2
}
В аналогичном вопросе, делают ли Вариант 1 и Вариант 2 одно и то же в приведенном выше коде?
1009 * Благодарения и *
Jonathan