Описание:
При удалении из cacheMatrix, объекты удаляются отовсюду(из matrix).
Вопрос: Не могу понять как это работает, и как предотвратить.
Спасибо за помощь !
private LinkedList<LinkedList<Double>> reduceMatrix( LinkedList<LinkedList<Double>> matrix) {
LinkedList<LinkedList<Double>> cacheMatrix = new LinkedList<>(matrix);
cacheMatrix.get(0).remove(1);
cacheMatrix = new LinkedList<>(matrix);
System.out.println(cacheMatrix);
}
Вы можете посмотреть любую реализацию, скажем из Open jdk и увидеть, что там поэлементно добавляется всё.
Но у вас список списков. То есть, в итоговый список cacheMatrix добавляются ссылки на списки LinkedList<Double>. Поэтому, обращаясь к cacheMatrix.get(0), вы, по сути, обращаетесь к matrix.get(0).
Сборка персонального компьютера от Artline: умный выбор для современных пользователей