next up previous
Next: 1.4 配列を引数とするメソッド Up: 1 配列 Previous: 1.2 配列の配列の初期化

1.3 配列のコピー

Javaでは,配列を配列に代入することでコピーできる. また,初期化がなされていない配列のlengthをアクセスしようと するプログラムはコンパイラによりエラーが出される.

public class Arrays {
  static void prt(String str, int[] a) {
    int i=0;
    System.out.print(str +"{");
    if (i<a.length) System.out.print(a[i++]);
    while (i<a.length) {
      System.out.print("," + a[i++]);
    }
    System.out.println("}");
  }
  public static void main(String[] args) {
    int[] a1 = { 1, 2, 3};
    int[] a2;
    int[] a3 = {};
    prt("a1:",a1);
//    prt("a2:",a2); コンパイルエラー
    a2 = a1;
    prt("a2:",a2);
    for(int i = 0; i < a2.length; i++)
      a2[i]++;
    prt("a2:",a2);
    prt("a3:",a3);
    a3 = a1;
    prt("a3:",a3);
  }
}
実行結果は次のようになる.
% java Arrays
a1:{1,2,3}
a2:{1,2,3}
a2:{2,3,4}
a3:{}
a3:{2,3,4}
プログラム中で,

    a2 = a1;
により,配列への参照が変数 a2 に代入され, 配列a2とa1とは同一の配列となる.

generated through LaTeX2HTML. M.Inaba 平成18年5月7日