List.copyOf()にコピーした後、元のバージョンを変更するとコピーが変更されますか?


List.copyOf()にコピーした後、元のバージョンを変更するとコピーが変更されますか?
->変わるかもしれないし、変わらないかもしれない.

変更された場合


元の参照オブジェクトの値が変更されると、コピーも変更されます.
原本もコピーも同じ参照を指しているからです.
例)
public static void main(String[] args) {
    List<Hello> original = new ArrayList<>();
    original.add(new Hello("hi"));
    original.add(new Hello("hi2"));List<Hello> newONE = List.copyOf(original);
    original.get(0).setSth("bye");System.out.println("original: " + original);
    System.out.println("new: " + newONE);
}

絵で表現するとこうなるはずです.

元のファイルの追加、削除、設定などのリスト単位操作を行う場合、コピーは影響を受けません。


例)
public static void main(String[] args) {
    List<Hello> original = new ArrayList<>();
    original.add(new Hello("hi"));
    original.add(new Hello("hi2"));List<Hello> newONE = List.copyOf(original);
    original.add(new Hello("bye"));System.out.println("original: " + original);
    System.out.println("new: " + newONE);
}