JavaのArrayListクラスの使い方を完全ガイド!初心者でもわかるリスト操作
生徒
「先生、Javaで配列みたいにデータをまとめて扱う方法はありますか?」
先生
「Javaにはjava.utilパッケージに含まれているArrayListクラスがあって、可変長の配列として使える便利な仕組みがあります。」
生徒
「配列と違うんですか?」
先生
「はい、配列は大きさを最初に決める必要がありますが、ArrayListなら必要に応じて要素を追加したり削除したりできますよ。」
1. ArrayListクラスとは?
JavaのArrayListクラスは、動的にサイズを変更できるリストを提供する便利なクラスです。java.utilパッケージに含まれており、配列のように複数のデータを順番に格納できます。配列と違ってサイズを気にせずデータを追加できるため、実務や学習の場面で頻繁に使われています。
2. ArrayListの基本的な使い方
ArrayListを利用するには、まずインポートしてからオブジェクトを作成します。以下の例では文字列を格納するリストを作成しています。
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("りんご");
list.add("みかん");
list.add("ぶどう");
System.out.println(list);
}
}
[りんご, みかん, ぶどう]
このようにaddメソッドを使えば、簡単に要素を追加できます。
3. 代表的なメソッド
ArrayListには多くの便利なメソッドがあります。代表的なものを紹介します。
add(E e):要素を追加するget(int index):指定した位置の要素を取得するset(int index, E element):要素を置き換えるremove(int index):指定した位置の要素を削除するsize():要素数を返すcontains(Object o):指定した要素が含まれているか調べるisEmpty():リストが空かどうかを確認するclear():すべての要素を削除する
4. getとsetの使い方
getメソッドを使えば指定した位置の要素を取り出せます。setメソッドを使えば上書きも可能です。
import java.util.ArrayList;
public class GetSetExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("りんご");
list.add("みかん");
list.add("ぶどう");
System.out.println(list.get(1)); // みかん
list.set(1, "バナナ");
System.out.println(list);
}
}
みかん
[りんご, バナナ, ぶどう]
5. removeとclearの違い
removeは指定した要素だけを削除しますが、clearはすべての要素を削除します。
import java.util.ArrayList;
public class RemoveClearExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("りんご");
list.add("みかん");
list.add("ぶどう");
list.remove(1);
System.out.println(list);
list.clear();
System.out.println(list);
}
}
[りんご, ぶどう]
[]
6. containsとisEmptyの使い方
containsは要素が含まれているかどうかを調べます。isEmptyはリストが空かどうかを確認します。
import java.util.ArrayList;
public class ContainsIsEmptyExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("りんご");
System.out.println(list.contains("りんご")); // true
System.out.println(list.isEmpty()); // false
}
}
7. ArrayListのサイズを確認する
sizeメソッドを使うと要素数を簡単に確認できます。
import java.util.ArrayList;
public class SizeExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("りんご");
list.add("バナナ");
System.out.println("要素数: " + list.size());
}
}
8. ArrayListとforループ
ArrayListの要素はforループで順番に取り出せます。
import java.util.ArrayList;
public class LoopExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("りんご");
list.add("バナナ");
list.add("ぶどう");
for (String fruit : list) {
System.out.println(fruit);
}
}
}
9. ArrayListと配列の違い
配列はサイズ固定ですが、ArrayListは可変長で柔軟に要素を追加削除できます。また、ArrayListは多くの便利なメソッドが備わっており、実務での開発効率を大幅に高めます。初心者のうちは配列との違いを意識しながら使うと理解が深まります。
10. 注意点と応用
ArrayListはスレッドセーフではないため、マルチスレッド環境ではCollections.synchronizedListでラップするか、CopyOnWriteArrayListを使うことを検討しましょう。また、大量のデータを扱う場合はパフォーマンスへの影響も考える必要があります。
まとめ
今回の記事ではJavaのArrayListクラスの基本から応用までを詳しく学びました。ArrayListはjava.utilパッケージに含まれている代表的なコレクションクラスであり、可変長のリストを扱えるため初心者が最初に覚えるべき便利な仕組みです。配列との大きな違いはサイズを自由に変更できる点であり、addメソッドを使って要素を増やしたり、removeメソッドで削除したり、さらにsetメソッドで上書きすることも可能です。forループや拡張for文と組み合わせることで、効率的にデータを取り扱うことができるため、実務のシステム開発や学習用のプログラムにおいて必須の知識となります。
また、containsメソッドで特定の要素が含まれているかを調べたり、isEmptyで空かどうかを確認できるなど、初心者でも理解しやすい便利な機能が揃っています。特にsizeメソッドを活用すれば現在の要素数を簡単に確認できるため、データ処理を行う際に非常に役立ちます。さらに、clearメソッドを使えばすべての要素を一度に削除できるため、繰り返しテストや初期化が必要なケースでも効率的に使えます。配列との違いを意識しながら学ぶことで、Javaのコレクションフレームワークに自然に馴染めるようになります。
さらに実務の場面では、ArrayListを使う際にスレッドセーフではないことに注意し、必要に応じてCollections.synchronizedListやCopyOnWriteArrayListを使うことが重要です。大量データを扱う場合にはパフォーマンスの影響を考えることも欠かせません。基礎を理解したうえで、用途に応じて適切に活用できればJavaの開発力は大きく向上します。
サンプルプログラムでの振り返り
最後に今回学んだ内容を簡単なプログラムで振り返ってみましょう。ArrayListに要素を追加し、削除し、ループで出力する基本的な流れをまとめています。
import java.util.ArrayList;
public class SummaryExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("りんご");
fruits.add("みかん");
fruits.add("ぶどう");
System.out.println("初期リスト: " + fruits);
fruits.remove("みかん");
System.out.println("削除後リスト: " + fruits);
for (String fruit : fruits) {
System.out.println("要素: " + fruit);
}
}
}
初期リスト: [りんご, みかん, ぶどう]
削除後リスト: [りんご, ぶどう]
要素: りんご
要素: ぶどう
このようにシンプルな使い方を繰り返すことで、自然とArrayListクラスの特徴や便利さを理解できるようになります。
生徒
「先生、ArrayListを使うと配列よりも柔軟にデータを扱えることがよくわかりました。追加や削除が簡単でした。」
先生
「そうですね。特に要素数が変動する場面ではArrayListがとても便利です。ゲームのデータ管理やWebアプリのユーザーリストなど、現場でもよく使われますよ。」
生徒
「getやsetで要素を取り出したり変更したりできるのも便利でした。配列よりも直感的に書ける気がします。」
先生
「その通りです。初心者のうちはまずArrayListをマスターすることで、他のコレクションにも応用できるようになりますよ。」
生徒
「今度はLinkedListやHashMapも勉強してみたいです。Javaのコレクションって奥が深いですね。」
先生
「良い流れですね。ArrayListを理解できたことは大きな一歩です。次の学習にも必ず役立ちますよ。」