はじめに
この記事では、JavaのArrayListについて初心者向けに解説します。
ArrayListは要素を動的に追加・削除できるデータ構造であり、配列と比較して柔軟な操作が可能です。以下では、ArrayListの基本的な使い方と代表的な使用例を紹介します。
ArrayListの基本的な使い方
まずはじめに、ArrayListを使用するためにはjava.utilパッケージをインポートする必要があります。以下に、ArrayListを使った基本的なコード例を示します。
import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args) {
// ArrayListの作成
//ArrayListを使う場合、Stringなどのデータ形式は
//尖括弧(<>)で囲む必要があります
//囲まないとコンパイルエラーが発生します
//左辺で<String>を宣言することで、右辺の<>についてはStringが代入されます
ArrayList<String> list = new ArrayList<String>();
// 要素の追加
list.add("りんご");
list.add("ばなな");
list.add("オレンジ");
// 要素の取得
String firstElement = list.get(0);
System.out.println("最初の要素: " + firstElement);
// 要素の削除
list.remove(1);
System.out.println("削除後の要素数: " + list.size());
}
}
上記のコードでは、以下のような操作が行われています。
ArrayListの作成: ArrayList list = new ArrayList<>();として、ArrayListを作成しています。
要素の追加: list.add("りんご");のようにして、要素を追加しています。
要素の取得: list.get(0);として、指定したインデックスの要素を取得しています。
要素の削除: list.remove(1);として、指定したインデックスの要素を削除しています。
上記のコードを実行すると、以下のような結果が得られます。
最初の要素: りんご
削除後の要素数: 2
値を一つ取り出す
import java.util.ArrayList;
// 次のインポートが必要
import java.util.List;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
// ArrayListで配列を作成した場合、
// 中身を取得するにはgetメソッドを使用しなければならない
// (もしくはforループで別の変数に入れ替える)
String fruit = list.get(1);
System.out.println(fruit); // 結果: banana
}
}
ArrayListを使用せずに配列を作成した場合は
'list[1]'にて値を取得できますが
ArrayListで配列を作成した場合は
getメソッドを使用し引数に配列の番号を指定して値を取得します
get()メソッドを使用するためには、次のパッケージのインポートが必要です
java.util.List;
for文による値の操作
import java.util.ArrayList;
import java.util.List;
public class StringListExample {
public static void main(String[] args) {
ArrayList<String> stringList = new ArrayList<>();
// 文字列の追加
stringList.add("Java");
stringList.add("Python");
stringList.add("JavaScript");
// 文字列の表示
for (int i = 0; i < stringList.size(); i++) {
System.out.println(stringList.get(i));
}
}
}
上記のコードでは、文字列のリストを作成し、要素を追加して表示しています。
for文により一度別の変数に値を代入する場合はgetメソッドは不要です。
実行結果は以下のようになります。
Java
Python
JavaScript
拡張forループによる操作
import java.util.ArrayList;
import java.util.List;
public class StringListExample {
public static void main(String[] args) {
ArrayList<String> stringList = new ArrayList<>();
// 文字列の追加
stringList.add("Java");
stringList.add("Python");
stringList.add("JavaScript");
// 文字列の表示(拡張forループ)
for (String list : stringList) {
System.out.println(list);
}
// 拡張forループによる値の操作
int index = 0;
for (String list : stringList) {
stringList.set(index, list + "言語");
index++;
}
// forEachメソッドによる出力
stringList.forEach(list -> {
System.out.println(list);
});
}
拡張forループで値を変数に代入する場合は
getメソッドは不要です
数値のリストの操作
import java.util.ArrayList;
import java.util.List;
public class NumberListExample {
public static void main(String[] args) {
ArrayList<Integer> numberList = new ArrayList<>();
// 数値の追加
numberList.add(10);
numberList.add(20);
numberList.add(30);
// 合計値の計算
int sum = 0;
for (int num : numberList) {
sum += num;
}
System.out.println("合計値: " + sum);
}
}
上記のコードを実行すると、以下のような結果が得られます。
合計値: 60
このコードでは、ArrayListを使用して数値のリストを作成し、要素を追加しています。その後、拡張forループを使用してリストの要素を取り出し、合計値を計算して表示しています。
配列の要素数を取得し操作したい
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// ArrayListを作成し、要素を追加する
List<String> array = new ArrayList<>();
array.add("Apple");
array.add("Banana");
array.add("Orange");
// 最後の要素を削除する
int lastIndex = array.size() - 1;
if (lastIndex >= 0) {
array.remove(lastIndex);
}
// 結果を出力する
System.out.println(array); // 出力: [Apple, Banana]
}
}
まとめ
ArrayListは配列を操作するクラスであり、柔軟な要素の追加や削除が可能なため、データの動的な管理や操作に便利です。