Я заметил, что когда у меня впервые есть
list2 = (LinkedList)list.clone();
Я мог бы работать с обоими списками независимо, например. list2.remove(1)
Но позже, когда я
list = (LinkedList)list2.clone();
когда я делаю list.remove(1)
list2 тоже влияет. Почему это?
UPDATE
Мой код http://pastie.org/2598096
Пример ввода:
4 8
1 5 2 3
4
I 1 2
R 2
C 1 10
I 4 2
> javac Main.java && java Main < ./input/betterlist0.in
[ 1, 5, 2, 3, ] -- [ 2, 1, 5, 2, 3, ] // list2 can be modified from list1 independently
YES9 8
[ 2, 5, 2, 3, ] -- [ 2, 5, 2, 3, ] // now when list2 is modified, list1 gets modified too.
Я думаю, потому что super.clone()
делает мелкую копию. Но почему тогда это сработало в первый раз?