新人エンジニア向け!「ArrayListをフィールドに持つクラス」の基本と実践解説
こんにちは。ゆうせいです。
今回は「ArrayListをフィールドに持つクラス」について、初学者にもわかりやすく説明していきます!「フィールド」「ArrayList」と聞くとちょっと難しそうですが、例え話を使いながら丁寧に解説しますので安心してくださいね。
ArrayListとは?
まずは「ArrayListって何?」から始めましょう。
配列との違いから理解しよう
Javaでは「配列(Array)」と呼ばれる、データを並べて保持する構造があります。たとえば:
String[] names = new String[3];
これは「3人分の名前を入れる箱」を作っているイメージです。でも、人数が増えたらどうしますか?配列のサイズは固定なので、足りなくなると新しい配列を作るしかありません。
ここで登場するのがArrayListです。
ArrayList<String> names = new ArrayList<>();
names.add("田中");
names.add("佐藤");
ArrayListはサイズが可変の配列のようなもので、要素の追加や削除が自由にできる便利なクラスです。
フィールドにArrayListを持つってどういうこと?
フィールドとは?
フィールドとは、クラスの中に定義される「変数」のことです。そのクラスの状態(データ)を表します。
たとえば、「学生」を表すクラスに「テストの点数(複数)」を保持したいとき、以下のように書けます。
public class Student {
private ArrayList<Integer> scores; // ← これがフィールド!
}
これは「Studentという設計図の中に、点数をしまっておけるリスト(ArrayList)があるよ」という意味です。
具体的なコード例
Studentクラスの例
import java.util.ArrayList;
public class Student {
private String name;
private ArrayList<Integer> scores;
public Student(String name) {
this.name = name;
this.scores = new ArrayList<>();
}
public void addScore(int score) {
scores.add(score);
}
public double getAverage() {
int sum = 0;
for (int score : scores) {
sum += score;
}
return scores.size() == 0 ? 0 : (double) sum / scores.size();
}
public void printScores() {
System.out.println(name + "の点数: " + scores);
}
}
使い方例(mainメソッド)
public class Main {
public static void main(String[] args) {
Student s = new Student("山田");
s.addScore(80);
s.addScore(90);
s.printScores(); // 山田の点数: [80, 90]
System.out.println("平均点: " + s.getAverage()); // 平均点: 85.0
}
}
メリットとデメリット
メリット
- サイズを気にしなくてよい:必要な分だけ追加できる
- 柔軟性が高い:並び替えや削除も簡単
- リストとしての操作が充実:たとえば
contains
(含まれているか)やremove
(削除)など
デメリット
- プリミティブ型(intなど)は直接使えない
→int
ではなくInteger
というラッパークラスを使う必要があります。 - パフォーマンス:大量データには向かない場合もある
よくある質問
Q. なぜArrayListはフィールドに向いているの?
A. データが増えたり減ったりする「柔軟な状態」を表現するのにピッタリだからです。たとえば、「買い物かご」に入れる商品一覧や「学生の出席記録」など、変動するデータに最適です。
Q. new ArrayList<>() の意味は?
A. 「新しく空のArrayListを作る」という意味です。<>
の中に型(例:String
やInteger
)を書くことで、何のデータを入れるかを指定できます。
まとめと今後の学習のヒント
ArrayListをフィールドに使うことで、複数のデータをクラスに自然に持たせることができるようになります。特に、現実世界に存在する「リストっぽい」データをプログラムで扱うときには欠かせません。
次のステップとしては、以下の内容に取り組むのがおすすめです。
- ArrayListと他のコレクション(LinkedList, HashSetなど)の違い
- フィールドをカプセル化(private + getter/setter)する意味
- ArrayListの操作メソッド(
sort
,remove
,clear
など)を実践で使ってみる
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。