Javaの配列は、格納する要素の数を最初に決める必要があり、かつ後で要素数を変更することができません。
要素を増やす場合は、サイズの大きな配列を新たに作成して元データをコピーするか、ArrayListというリストの一種を使用します。
ArrayListは要素の数を変更できる配列のようなもので、ウェブアプリケーション開発ではよく使用されます。
配列を使ってみよう
class Main {
public static void main(String[] args) {
int[] scores;
scores = new int[3];
scores[0] = 1;
scores[1] = 5;
scores[2] = 10;
System.out.println(scores[0]);
System.out.println(scores[1]);
System.out.println(scores[2]);
}
}
以下のように結果が表示されます。
1
5
10
配列の使い方を理解しよう
① 配列の宣言を行う
② 配列の要素を作成し、配列に代入する
③ 配列の要素に値を代入する
① 配列の宣言を行う
宣言は以下のように行います。
int[] scores;
前の章で、整数型の変数を宣言する時は、int score;
といった記述をすると学習しました。
それと同じように、int型の整数を格納する配列の宣言はint[] scores;
と記述します。
この「int」は要素として格納したいデータ型を指定するもので、例えばlong型の整数を格納する配列ならlong[] scores;
のように宣言します。
② 配列の要素を作成し、配列に代入する
先ほど以下のコードを実行しました。
scores = new int[3];
右側部分のnew int[3];
はint型の要素を3つ作成するということである。
③ 配列の要素に値を代入する
scores[0] = 1;
配列scoresの1番目の要素に「1」を代入しています。
「1番目」を表すインデックスとして「0」を指定します。
また、配列の要素を取り出すときは、以下のように行います。
scores[0]
配列のさまざまな記述方法を理解しよう
① 配列の宣言と同時に、要素の作成も行う方法
先ほど実行したコードでは、以下のように配列の宣言と要素の作成を別に行っていました。
int[] scores;
scores = new int[3];
以下のように1行で記述することもできます。
int[] scores = new int[3];
② 配列の宣言時に型推論を使用する方法
配列でも型推論を使用することができます。
var scores = new int[3];
int型の要素3つを代入することで、scoresはそれらを格納する配列であることが推論されています。
③ 配列の宣言から値の代入まで全て同時に行う方法
配列の宣言時に代入する値が確定している場合は、以下のように記述を省略することができます。
int[] scores = {1, 5, 10};
リストを理解しよう
ArrayListを理解しよう
ArraListは「可変長配列」を使用するための仕組みです。可変長配列とは、文字通り長さ(要素数)を変更できる配列のことです。
Rubyの配列は可変長なので、Javaの配列よりもArrayListの方が性質や使い方が近いものとなっています。
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> scores = new ArrayList<Integer>();
scores.add(1);
scores.add(5);
scores.add(10);
scores.add(15);
System.out.println(scores.get(0));
System.out.println(scores.get(1));
System.out.println(scores.get(2));
System.out.println(scores.get(3));
}
}
ArrayListを使用する際は、事前にライブラリのインポートが必要です。
上記のコードを記述する際は、1行目にimport文があることに注意しましょう。
ArrayListの使い方を理解しよう
① ライブラリをインポートする
② ArrayListの宣言を行う
③ ArrayListに値を代入する
④ ArrayListから要素を取り出す
① ライブラリをインポートする
import java.util.ArrayList;
② ArrayListの宣言を行う
以下のように行います。
ArrayList<データ型> scores = new ArrayList<データ型>();
先ほどのコードでは
ArrayList<Integer> scores = new ArrayList<Integer>();
ここで行っているのは、以下の2つの動作です。
① 整数(Integer)を格納するArrayListを「score」という名称で宣言
② ArrayListの要素を作成
そして、①に②を代入しています。
なお、要素のデータ型を右辺でも指定していますが、これは省略することが可能です。
以下のように記述しても問題なく動作します。
ArrayList<Integer> scores = new ArrayList<>();
③ ArrayListに値を代入する
ArrayListに要素を追加するためにはaddメソッドを使用します。
記述は、add(要素として追加する値)のように行います。
先ほど実行した以下のコードでは、scoresという名称のArrayListに「1」を追加しました。
scores.add(1);
④ ArrayListから要素を取り出す
記述は、get(取得したい要素のインデックス)
のように行います。配列から要素を取り出す際と同様に、「1番目」の要素を取り出したい時は、インデックスとして「0」を指定します。
scores.get(0)