配列を、以下のように単純に代入するとシャローコピーになり、配列オブジェクトへの参照がコピーされるだけになる。なので、aaa配列の中身を書き換えると、bbb配列の中身も書き換わる。
これを、以下のようにArraysクラスのcopyOfメソッドを使うと、ディープコピーとなり、配列の中身をコピーした別のオブジェクトとしてコピーしてくれるなので、aaa配列の中身を書き換えても。bbb配列の中身は書き換わらない。String[] aaa = {"1", "2", "3", "4"}; String[] bbb = aaa; System.out.println(Arrays.toString(aaa)); System.out.println(Arrays.toString(bbb)); aaa[2] = "7"; System.out.println(Arrays.toString(aaa)); System.out.println(Arrays.toString(bbb));
String[] aaa = {"1", "2", "3", "4"}; String[] bbb = Arrays.copyOf(aaa, aaa.length); System.out.println(Arrays.toString(aaa)); System.out.println(Arrays.toString(bbb)); aaa[2] = "7"; System.out.println(Arrays.toString(aaa)); System.out.println(Arrays.toString(bbb));
0 コメント:
コメントを投稿