はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
目次
add(),get(),remove(),size()
今回の記事では、ArrayListで利用できる機能について解説していきます。(ArrayListについては前回記事を参照してください。)
ArrayListには、作成したリストに対して実行できる様々な操作が存在します。この各操作のことをメソッドと呼びます。(メソッドについては「オブジェクトとクラス」編で詳しく解説します。)
ArrayListで利用できる操作は数が多いので、今記事では主要な操作について紹介します。
今回紹介するArrayListの操作は以下の4つです。
| 操作名 | 概要 |
|---|---|
| add(要素のデータ型 変数) | リストの最後に要素を追加する。 |
| get(int インデックス) | リストの要素番目の値を返す。 |
| remove(int インデックス) | リストの要素番目の値を削除する。 |
| size() | リスト内の要素数を返す。 |
add()
作成したリストに新しくデータを格納するときに使用します。
リスト名.add(格納したいデータ);
と記述して使用します。

get()
リストに格納したデータを取り出すときに使用します。
リスト名.get(インデックス);
と記述して使用します。
()の中にインデックスを指定することで、指定したインデックスのデータを取り出すことが出来ます。

remove()
リストに格納したデータを削除するときに使用します。
リスト名.remove(インデックス)
と記述して使用します。
()の中にインデックスを指定することで、指定したインデックスのデータを削除します。
この時、削除された要素より後ろに格納されているデータのインデックスが一つずつ詰まるので注意が必要です。

size()
リストに格納したデータの数を取得するときに使用します。
リスト名.size();
ArrayListと拡張for文
javaには拡張for文という仕組みが存在します。これは、配列やコレクション(ArrayList等の複数の要素の集まりのこと)の全要素を順番に取り出して処理する繰り返し処理です。
拡張for文は、
for(変数宣言:配列名){
繰り返す処理;
}
のように記述します。
拡張for文は、配列名で指定した配列やコレクションの要素数分だけ{}内の処理が繰り返されます。for文の()内で指定した配列から順に要素を取り出し、変数宣言で宣言した変数へ値を代入します。そして、その値を基に{}内の処理が実行されます。
実際に拡張for文のサンプルコードを実行して動作を確認してみましょう。
public class Sample {
public static void main(String[] args) {
ArrayList<String> strArray = new ArrayList<String>();
strArray.add("Apple");
strArray.add("Lemon");
strArray.add("Grape");
System.out.println("----通常のfor文----");
for(int i = 0;i < strArray.size();i++) {
System.out.println(strArray.get(i));
}
System.out.println("----拡張for文----");
for(String str:strArray) {
System.out.println(str);
}
System.out.println("----remove()実行後の拡張for文----");
strArray.remove(1);
for(String str:strArray) {
System.out.println(str);
}
}
}
実行結果

上記のサンプルコードでは、ArrayListの各機能を実行しつつ、通常のfor文と拡張for文を比較しています。
拡張for文の動作は、以下の図のようになっています。

拡張for文を記述する際、()内の変数宣言の部分で宣言する変数には配列から取り出されたデータが格納されます。その為、宣言する変数のデータ型は配列に格納されているデータのデータ型に対応している必要があるので注意しましょう。
ポイント
拡張for文を使用することで、配列の要素全てに対しての繰り返し処理が簡単に記述できる。
拡張for文で宣言する変数は、繰り返し処理の対象となる配列の要素のデータ型に対応したデータ型で宣言する必要がある。
