Java配列
Java配列
配列は、値ごとに個別の変数を宣言するのではなく、単一の変数に複数の値を格納するために使用されます。
配列を宣言するには、角かっこで変数の型を定義します。
String[] cars;
これで、文字列の配列を保持する変数を宣言しました。それに値を挿入するには、配列リテラルを使用できます。値を中括弧内のコンマ区切りリストに配置します。
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
整数の配列を作成するには、次のように記述できます。
int[] myNum = {10, 20, 30, 40};
配列の要素にアクセスする
インデックス番号を参照して配列要素にアクセスします。
このステートメントは、車の最初の要素の値にアクセスします。
例
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
System.out.println(cars[0]);
// Outputs Volvo
注:配列インデックスは0で始まります:[0]は最初の要素です。[1]は2番目の要素などです。
配列要素を変更する
特定の要素の値を変更するには、インデックス番号を参照してください。
例
cars[0] = "Opel";
例
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars[0] = "Opel";
System.out.println(cars[0]);
// Now outputs Opel instead of Volvo
配列の長さ
配列に含まれる要素の数を確認するには、次のlength
プロパティを使用します。
例
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
System.out.println(cars.length);
// Outputs 4
配列をループする
ループを使用して配列要素をfor
ループし、プロパティを使用しlength
てループを実行する回数を指定できます。
次の例では、 cars 配列のすべての要素を出力します。
例
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < cars.length; i++) {
System.out.println(cars[i]);
}
For-Eachで配列をループする
「for-each」ループもあります。これは、配列内の要素をループするためだけに使用されます。
構文
for (type variable : arrayname) {
...
}
次の例では、「 for-each」ループを使用して、 cars 配列内のすべての要素を出力します。
例
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (String i : cars) {
System.out.println(i);
}
上記の例は次のように読み取ることができます。車の各 String
要素(
iと呼ばれる
-i ndexのように)について、 iの値を出力します。
for
ループとfor-eachループを比較すると、for-eachメソッドの記述が簡単で、カウンターを必要とせず(lengthプロパティを使用)、読みやすくなっていることがわかります。
多次元配列
多次元配列は、配列の配列です。
2次元配列を作成するには、各配列を独自の 中括弧のセット内に追加します。
例
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
myNumbersは、要素として2つの配列を持つ配列になりました。
myNumbers配列の要素にアクセスするには、2つのインデックスを指定します。1つは配列用で、もう1つはその配列内の要素用です。この例では、myNumbersの2番目の配列(1)の3番目の要素(2)にアクセスします。
例
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
int x = myNumbers[1][2];
System.out.println(x); // Outputs 7
for loop
また、 inside anotherを使用してfor loop
、2次元配列の要素を取得することもできます(2つのインデックスを指す必要があります)。
例
public class Main {
public static void main(String[] args) {
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
for (int i = 0; i < myNumbers.length; ++i) {
for(int j = 0; j < myNumbers[i].length; ++j) {
System.out.println(myNumbers[i][j]);
}
}
}
}