第4章 配 列 オブジェクト指向Javaプログラミング入門 近代科学社©2008 Toru Kato Masahiro Higuchi 第4章 配 列 近代科学社©2008 Toru Kato Masahiro Higuchi Shiro Takata
配列 関連する複数のデータを、一つの名前で統一的に扱うためのオブジェクト 関連する複数のデータを、一つの名前で統一的に扱うためのオブジェクト 個々のデータをそれぞれ別の変数に代入して扱うような煩雑さを避けることができる 個々の要素は、配列名(配列変数名)とその後に続くindex(添字)を用いて処理できる [0] [1] [2] [3] 配列名
1次元配列を使ったプログラム例 even 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; プログラム例4.1.1(P. 95)改 配列変数evenの宣言と配列の生成 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; 10 even[1] = 2; 11 even[2] = 4; 12 even[3] = 6; 13 System.out.print("4番目までの偶数:"); 14 for (int i = 0; i < 4; i++) { 15 System.out.printf("%4d", even[i]); 16 } [0] [1] [2] [3] even
1次元配列を使ったプログラム例 even 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; プログラム例4.1.1(P. 95)改 配列evenへ、データを格納 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; 10 even[1] = 2; 11 even[2] = 4; 12 even[3] = 6; 13 System.out.print("4番目までの偶数:"); 14 for (int i = 0; i < 4; i++) { 15 System.out.printf("%4d", even[i]); 16 } [0] [1] [2] [3] even
1次元配列を使ったプログラム例 2 even 7 int[] even; 8 even = new int[4]; プログラム例4.1.1(P. 95)改 配列evenへ、データを格納 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; 10 even[1] = 2; 11 even[2] = 4; 12 even[3] = 6; 13 System.out.print("4番目までの偶数:"); 14 for (int i = 0; i < 4; i++) { 15 System.out.printf("%4d", even[i]); 16 } [0] [1] [2] [3] 2 even
1次元配列を使ったプログラム例 2 4 even 7 int[] even; 8 even = new int[4]; プログラム例4.1.1(P. 95)改 配列evenへ、データを格納 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; 10 even[1] = 2; 11 even[2] = 4; 12 even[3] = 6; 13 System.out.print("4番目までの偶数:"); 14 for (int i = 0; i < 4; i++) { 15 System.out.printf("%4d", even[i]); 16 } [0] [1] [2] [3] 2 4 even
1次元配列を使ったプログラム例 2 4 6 even 7 int[] even; 8 even = new int[4]; プログラム例4.1.1(P. 95)改 配列evenへ、データを格納 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; 10 even[1] = 2; 11 even[2] = 4; 12 even[3] = 6; 13 System.out.print("4番目までの偶数:"); 14 for (int i = 0; i < 4; i++) { 15 System.out.printf("%4d", even[i]); 16 } [0] [1] [2] [3] 2 4 6 even
1次元配列を使ったプログラム例 2 4 6 even 7 int[] even; 8 even = new int[4]; プログラム例4.1.1(P. 95)改 配列を用いてデータをまとめてしまえば、配列名を用いて それらのデータに対する処理が簡潔に記述できる 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; 10 even[1] = 2; 11 even[2] = 4; 12 even[3] = 6; 13 System.out.print("4番目までの偶数:"); 14 for (int i = 0; i < 4; i++) { 15 System.out.printf("%4d", even[i]); 16 } [0] [1] [2] [3] 2 4 6 even
1次元配列を使ったプログラム例 2 4 6 even 7 int[] even; 8 even = new int[4]; プログラム例4.1.1(P. 95)改 配列の大きさを利用するときには、lengthを使うべき 7 int[] even; 8 even = new int[4]; 9 even[0] = 0; 10 even[1] = 2; 11 even[2] = 4; 12 even[3] = 6; 13 System.out.print(even.length + "番目までの偶数:"); 14 for (int i = 0; i < even.length; i++) { 15 System.out.printf("%4d", even[i]); 16 } [0] [1] [2] [3] 2 4 6 even
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; [0][0] [0][1] [0][2] [0][3] [1][0] [1][1] [1][2] [1][3] 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 0 0 0 [0][0] [0][1] [0][2] [0][3] [1][0] [1][1] [1][2] [1][3] 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 0 1 1 [0][0] [0][1] [0][2] [0][3] 1 [1][0] [1][1] [1][2] [1][3] 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 0 2 2 [0][0] [0][1] [0][2] [0][3] 1 2 [1][0] [1][1] [1][2] [1][3] 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 0 2 3 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 1 0 1 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 1 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 1 1 2 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 1 2 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 1 2 3 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 1 2 3 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 1 3 4 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 1 2 3 4 配列 a [2][0] [2][1] [2][2] [2][3]
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 2 0 2 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 1 2 3 4 配列 a [2][0] [2][1] [2][2] [2][3] 2
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 2 1 3 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 1 2 3 4 配列 a [2][0] [2][1] [2][2] [2][3] 2 3
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 2 2 4 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 1 2 3 4 配列 a [2][0] [2][1] [2][2] [2][3] 2 3 4
配列 a for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { (プログラム例4.3.1(p. 103)の5,6,7行目) for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { a[i][j] = i + j; 2 3 5 [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] 1 2 3 4 配列 a [2][0] [2][1] [2][2] [2][3] 2 3 4 5
( ) 配列 a for(int i = 0; i < a.length; i++) { 2次元配列の大きさも length で取得できる。length を使うと、配列の大きさが変わっても他の部分は変更不要 for(int i = 0; i < a.length; i++) { for(int j = 0; j < a[i].length; j++) { a[i][j] = i + j; [0][0] [0][1] [0][2] [0][3] 1 2 3 [1][0] [1][1] [1][2] [1][3] a.length 3 1 2 3 4 配列 a [2][0] [2][1] [2][2] [2][3] ( = ) 2 3 4 5 a[i].length (= 4)