第6章 配列
この章では Javaの配列について説明します。
homepage
# **配列** *** 配列は、値ごとに別々の変数を宣言するのではなく、単一の変数に複数の値を格納するために使用されます。 **配列を宣言する**には、変数の型を角括弧で定義します。 <pre><code>String[] cars; int number[]; int[] number; </code></pre> 上記の定義は配列の変数を宣言するだけであり、この状態では実体は存在しません。 <br> **配列を初期化する**には、new演算子で初期化します。 ``` //int型の値を3つ格納することのできる配列を宣言 int number[] = new int[3]; // 変数宣言と初期化を別にすることも可能 int number[]; number = new int[3]; ``` このとき、number[0], number[1], number[2] にはすべて 0 が格納されています。new で配列を初期化した場合は、その型クラスのデフォルト値で初期化されます。 <br> 宣言と同時に配列を初期化する方法もあります。値を中括弧で囲み、カンマ区切りのリストにします。 <pre><code>//一次元配列イニシャライザ String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; //或いは String[] cars; cars = new String[]{"Volvo", "BMW", "Ford", "Mazda"}; </code></pre> <br><br> ## **1.配列の要素にアクセスする** インデックス番号を```[]```内に参照して配列要素にアクセスします。 <pre><code>String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; System.out.println(cars[0]); </code></pre> <font color=#0099ff>注:配列インデックスは0から始まります。[0]が最初の要素です。[1]は2番目の要素などです。</font> <br><br> ## **2.配列の長さ** 配列の要素数を調べるには、次のlengthプロパティを使用します。 <pre><code>String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; System.out.println(cars.length); </code></pre> <br><br> ## **3.配列をループする** ループを使用して配列要素をforループ処理し、length プロパティを使用してループの実行回数を指定できます。 <pre><code>String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; for (int i = 0; i < cars.length; i++) { System.out.println(cars[i]); } </code></pre> <br> <pre><code>String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; for (String i : cars) { System.out.println(i); } </code></pre> <br><br> ## **4.多次元配列** 多次元配列は、2つ以上の配列を含む配列です。 2次元配列を作成するには、各配列をそれ自身の中括弧のセット内に追加します。 <pre><code>int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} }; int x = myNumbers[1][2]; System.out.println(x); // Outputs 7 </code></pre> #### **例** [JSample6_1.java] ``` package JSample; public class JSample6_1 { public static void main(String[] args) { int[][] myNumbers = { { 1, 2, 3, 4 }, { 5, 6, 7 } }; for (int i = 0; i < myNumbers.length; ++i) { //配列名.length で、縦方向の要素数を取得(今回は2) System.out.println("行ごとに繰り返し"); for (int j = 0; j < myNumbers[i].length; ++j) { //配列名[0].length で、横方向の要素数を取得(今回は4と3) System.out.println("列の要素数は" + myNumbers[i].length); System.out.println(myNumbers[i][j]); } } } } ``` #### **実行結果** 行ごとに繰り返し<br> 列の要素数は4<br> 1<br> 列の要素数は4<br> 2<br> 列の要素数は4<br> 3<br> 列の要素数は4<br> 4<br> 行ごとに繰り返し<br> 列の要素数は3<br> 5<br> 列の要素数は3<br> 6<br> 列の要素数は3<br> 7 <br><br> *** > **練習** >> **問題1**[JEx6_1.java] <pre><code>int[] cars = {1,2,3,4,5,6,7,8,9,10}; </code></pre> 上記の配列から偶数のみを出力してください。 >> **問題2**[JEx6_2.java] 配列を作成して、下記の九九表になるように出力してください。 1<br> 2 4<br> 3 6 9<br> 4 8 12 16<br> 5 10 15 20 25<br> 6 12 18 24 30 36<br> 7 14 21 28 35 42 49<br> 8 16 24 32 40 48 56 64<br> 9 18 27 36 45 54 63 72 81 >> **問題3**[JEx6_3.java] ``` String[] cars = {"Volvo", "BMW", "Ford", "Mazda"}; ``` 上記の配列を作って、下記のように出力してください。<br> Volvo<br> BMW<br> Ford<br> Mazda <!-- ``` package JSample; public class JSample6_3 { public static void main(String[] args) { String[] cars = { "Volvo", "BMW", "Ford", "Mazda" }; for (String i : cars) { System.out.println(i); } } } ``` 実行結果:<br>  -->
content
戻る