Java ArrayList完全マスター:操作・メソッド・ベストプラクティス
Java ArrayListクラス
JavaのArrayListの全機能を解説:作成、操作、イテレーションを実例でマスター。
ArrayListクラスはJavaコレクションフレームワークの一部で、Listインターフェースを実装し、可変長配列データ構造を提供します。静的配列とは異なり、要素の追加・削除時に容量を自動調整するため、動的配列として機能します。

ArrayList vs 配列
従来の配列は宣言時に固定サイズが必要で柔軟性に欠けます。ArrayListはオンデマンドでリサイズすることでこの制限を克服し、効率的な動的データ処理を実現します。
ArrayListの作成
使用前にクラスをインポート:
import java.util.ArrayList;
要素型を指定してインスタンス化:
// Integer型 ArrayList ArrayList<Integer> intList = new ArrayList<>(); // String型 ArrayList ArrayList<String> strList = new ArrayList<>();
注意:ジェネリクスはプリミティブ型をサポートしないため、ラッパークラス(intならInteger)を使用します。
例:ArrayListの作成
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("Python"); languages.add("Swift"); System.out.println("ArrayList: " + languages); } }
出力
ArrayList: [Java, Python, Swift]
ArrayListの基本操作
要素の追加、アクセス、変更、削除といったコア操作を簡潔なコードスニペットで紹介します。
- 要素の追加
- 要素のアクセス
- 要素の変更
- 要素の削除
1. 要素の追加
単一要素を末尾に追加:
ArrayList<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("C"); languages.add("Python"); System.out.println("ArrayList: " + languages);
出力
ArrayList: [Java, C, Python]
特定インデックスに挿入:
languages.add(1, "JavaScript"); languages.add(3, "C++");
コレクションから全要素を追加:
import java.util.ArrayList; import java.util.HashSet; class Main { public static void main(String[] args) { HashSet<String> vowels = new HashSet<>(); vowels.add("a"); vowels.add("e"); vowels.add("i"); ArrayList<String> alphabets = new ArrayList<>(); alphabets.addAll(vowels); System.out.println("ArrayList: " + alphabets); } }
出力
ArrayList: [a, e, i]
2. 要素のアクセス
インデックスで取得:
ArrayList<String> animals = new ArrayList<>(); animals.add("Cat"); animals.add("Dog"); animals.add("Cow"); String str = animals.get(1); System.out.print("Element at index 1: " + str);
出力
Element at index 1: Dog
必要に応じてIteratorでイテレーションも可能。
3. 要素の変更
既存要素を置換:
ArrayList<String> languages = new ArrayList<>(); languages.add("Java"); languages.add("Kotlin"); languages.add("C++"); languages.set(2, "JavaScript"); System.out.println("Modified ArrayList: " + languages);
出力
Modified ArrayList: [Java, Kotlin, JavaScript]
4. 要素の削除
インデックス指定で削除:
ArrayList<String> animals = new ArrayList<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); String removed = animals.remove(2); System.out.println("Updated ArrayList: " + animals); System.out.println("Removed Element: " + removed);
出力
Updated ArrayList: [Dog, Cat] Removed Element: Horse
clear()で全削除、removeAll()で範囲削除も可能。
よく使うArrayListメソッド
基本的なCRUD操作以外で頻繁に使われるメソッド:
| メソッド | 説明 |
|---|---|
| size() | 要素数を返す |
| sort() | リストをソート |
| clone() | シャローコピーを作成 |
| contains() | 要素の存在確認 |
| ensureCapacity() | 容量を事前確保 |
| isEmpty() | 空かどうか判定 |
| indexOf() | 最初の出現インデックスを取得 |
完全なリストは公式ArrayList APIを参照。
拡張for文でのイテレーション
ArrayList<String> animals = new ArrayList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); for (String animal : animals) { System.out.print(animal + ", "); }
出力
Cow, Cat, Dog,
よくある質問
Java ArrayListとLinkedListの違いは?
| ArrayList | LinkedList |
|---|---|
Listインターフェースを実装 | List、Queue、Dequeを実装 |
| 単一の連続メモリブロック | next/prev参照を持つノード |
| ランダムアクセス O(1) | シーケンシャルアクセス O(n) |
| 動的にリサイズ | 動的にリサイズ |
ArrayListを配列に変換するには?
String[] arr = new String[languages.size()]; languages.toArray(arr);
配列をArrayListに変換するには?
ArrayList<String> list = new ArrayList<>(Arrays.asList(arr));
ArrayListを1行で作成・初期化するには?
ArrayList<String> list = new ArrayList<>(Arrays.asList("Java", "Python", "C"));
ArrayListをStringに変換するには?
String str = languages.toString();
Listインターフェースを使ってArrayListを作るには?
List<String> list = new ArrayList<>();
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java Vectorの理解:使い方、特徴、ArrayListとの比較
- Javaコレクションアルゴリズム完全ガイド:ソート、シャッフル、検索など
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除