この記事のポイント
Javaのsizeメソッドは、ArrayListやHashMapなどのコレクションに入っている要素の数を取得するためのメソッドです。プログラムでデータをまとめて扱うときに欠かせない、基本的な機能といえます。
この記事を読むと、次のようなことが身に付きます。
sizeメソッドの役割とコレクションとの関係がわかる ArrayListやHashMapなど、代表的なクラスでの使い方がわかる 繰り返し処理や条件分岐での活用方法がわかる この記事でsizeメソッドの使い方をマスターすれば、データの個数に合わせた適切なプログラムを迷わず書けるようになります。
sizeとは? sizeメソッドは、ArrayList やHashMap などのコレクションに、いくつの要素が入っているかを整数(int型 )で数えるための命令です。
Javaで複数のデータをまとめて扱うとき、中身が全部でいくつあるかを知りたい場面はよくあります。そのようなときにsizeメソッドを呼び出すと、中にあるデータの個数を正確に教えてくれます。
sizeメソッドの特徴
ArrayListやHashSetなど多くのコレクションで共通して使える
要素が一つもないときは0を返す
データの追加や削除に合わせて常に最新の個数を取得できる
配列の要素数を数えるlength属性とは書き方が異なる
for文 などの繰り返し処理を行う回数を決めるときに活用される
プログラムの中で動的に変化するデータの量を把握し、適切な処理を行うためにとても大切な機能です。
【関連】Javaをもっと詳しく学ぶならpaizaラーニング
基本構文 sizeメソッドの使い方はとてもシンプルです。中身を調べたいコレクションの変数名に対してドット(.)でつなぎ、size()と書くだけで要素の数を取得できます。
例1:ArrayListで要素数を取得する
ArrayListにデータを追加し、sizeメソッドでその数を確認する基本的な例です。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
animals.add("ネコ");
animals.add("イヌ");
animals.add("ウサギ");
int count = animals.size();
System.out.println("要素数: " + count);
}
}
実行する
出力結果
要素数: 3この例では、ArrayListに3つの文字列を追加したあとにsizeメソッドを呼び出しているために、3という結果となります。まず、addメソッドを使って動物の名前をリストに入れ、そのあとにsizeメソッドを使って、現在いくつ入っているかを数えています。
例2:HashMapで要素数を取得する
HashMapでも同様に、ペアとして管理されているデータの数を確認できます。
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, Integer> animalAge = new HashMap<>();
animalAge.put("ゾウ", 10);
animalAge.put("キリン", 5);
System.out.println("エントリ数: " + animalAge.size());
}
}
実行する
出力結果
エントリ数: 2この例では、HashMapに2組のデータを登録しているために、2という結果となります。まず、putメソッドを使って動物の名前と年齢をペアにして保存し、sizeメソッドでペアの数を数えています。
例3:要素を削除した後のサイズ確認
removeメソッドで要素を削除した後にsizeメソッドを呼び出すと、削除後の正確な要素数が得られます。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
animals.add("パンダ");
animals.add("コアラ");
animals.add("カンガルー");
animals.remove("コアラ");
System.out.println("削除後の要素数: " + animals.size());
}
}
実行する
出力結果
削除後の要素数: 2この例では、一度3つのデータを追加したあとで一つ削除しているために、2という結果となります。まず、リストの状態をremoveメソッドで変更し、そのあとにsizeメソッドを呼ぶことで、常に最新の状態を正確に数えられることがわかります。
実用例 ここでは、実際の開発でよく使われる状況を想定したsizeメソッドのコード例を紹介します。各コードは実行可能な状態で記載しているので、実際に動かしながら動作を確かめてみてください。
ArrayListの要素数を確認する ArrayListは最もよく使われるコレクションのひとつです。要素数を確認する基本的な使い方を示します。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
animals.add("ライオン");
animals.add("トラ");
animals.add("チーター");
animals.add("ヒョウ");
System.out.println("リストの要素数: " + animals.size());
}
}
実行する
出力結果
リストの要素数: 4この例では、4つの要素を持つArrayListに対してsizeメソッドを使用しているために、4という結果となります。まず、sizeがメソッドである点に注目してください。配列で使うlength属性とは異なり、末尾に「()」をつける必要があります。
空のリストかどうかを判定する リストが空かどうかをsizeメソッドを使って確認する方法です。size() == 0の場合、リストに要素がないと判定できます。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
if (animals.size() == 0) {
System.out.println("リストは空です");
} else {
System.out.println("要素数: " + animals.size());
}
}
}
実行する
出力結果
リストは空ですこの例では、何も追加していないリストのサイズを調べているために、0と判定されて「リストは空です」という結果となります。まず、sizeメソッドの結果をif文で比較することで、データがないときだけ特別な処理を行うといった分岐が作れます。
HashMapのエントリ数を取得する HashMapに登録されたデータの件数を取得する例です。sizeメソッドでそのペアの数を確認できます。
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> habitat = new HashMap<>();
habitat.put("ペンギン", "南極");
habitat.put("ラクダ", "砂漠");
habitat.put("シロクマ", "北極");
System.out.println("登録されたエントリ数: " + habitat.size());
}
}
実行する
出力結果
登録されたエントリ数: 3この例では、生息地の情報を3組登録しているために、3という結果となります。まず、キーと値のセットをputメソッドで登録し、sizeメソッドでその件数を管理しています。同じキーを登録すると上書きされるため、重複のない件数がわかります。
ループ処理の終了条件としてsizeを使う for文の繰り返し条件にsizeメソッドを使い、リストの全てのデータを順番に表示する例です。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> animals = new ArrayList<>();
animals.add("キツネ");
animals.add("タヌキ");
animals.add("リス");
for (int i = 0; i < animals.size(); i++) {
System.out.println(i + ": " + animals.get(i));
}
}
}
実行する
出力結果
0: キツネ
1: タヌキ
2: リスこの例では、リストのサイズをループの継続条件にしているために、全ての要素を順番に処理する結果となります。まず、インデックスが0から始まることを利用し、sizeメソッド未満の数まで繰り返すことで、エラーを出さずに末尾までアクセスしています。
Setの要素数を取得する 重複を許さないHashSetで個数を確認する例です。sizeメソッドで格納されている一意の要素数を取得できます。
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<String> animals = new HashSet<>();
animals.add("カラス");
animals.add("スズメ");
animals.add("カラス");
System.out.println("Set内の要素数: " + animals.size());
}
}
実行する
出力結果
Set内の要素数: 2この例では、同じ名前を2回追加しようとしてもHashSetが重複を自動で除外するために、2という結果となります。まず、コレクション特有の性質によって中身が整理され、その「最終的な個数」をsizeメソッドで取得しています。
リストを結合した後の要素数を確認する 2つのリストをaddAllメソッドで結合した後にsizeメソッドで要素数を確認する例です。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
list1.add("サル");
list1.add("クマ");
ArrayList<String> list2 = new ArrayList<>();
list2.add("シカ");
list2.add("イノシシ");
list2.add("キジ");
list1.addAll(list2);
System.out.println("結合後の要素数: " + list1.size());
}
}
実行する
出力結果
結合後の要素数: 5この例では、2件のリストに3件のリストをaddAllメソッドで追加しているために、5という結果となります。まず、別々の場所にあるデータを一つに集約し、その全体のボリュームをsizeメソッドで把握しています。
ネストされたリストの要素数を合計する リストの中に別のリストが入っている構造で、全体の要素数を計算する例です。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<ArrayList<String>> nested = new ArrayList<>();
ArrayList<String> group1 = new ArrayList<>();
group1.add("ワシ");
group1.add("タカ");
ArrayList<String> group2 = new ArrayList<>();
group2.add("フクロウ");
group2.add("ツバメ");
group2.add("カモ");
nested.add(group1);
nested.add(group2);
int total = 0;
for (int i = 0; i < nested.size(); i++) {
total += nested.get(i).size();
}
System.out.println("合計要素数: " + total);
}
}
実行する
出力結果
合計要素数: 5この例では、2つのグループに含まれるそれぞれの要素数をループで加算しているために、5という結果となります。まず、親リストのサイズでループを回し、各子リストに対してsizeメソッドを呼ぶことで、階層構造になったデータの総数を求めています。
まとめ Javaのsizeメソッドは、コレクション内の要素数を取得するための基本的なメソッドです。ArrayListやHashMapなど、さまざまなクラスで共通して使えるため、早い段階で慣れておくのがおすすめです。
この記事では、sizeメソッドの基本から実際の活用方法まで解説しました。要点を整理すると次のようになります。
sizeメソッドが活躍する場面
リストの要素数に合わせて繰り返し処理を行いたいとき
データが空かどうかを確認して処理を分けたいとき
要素の追加や削除をしたあとの最新の件数を知りたいとき
重要なポイント
配列の要素数を数えるときはlength属性を使い分ける
要素を追加や削除したあとも常に最新の個数を返してくれる
重複を許さないSetでは一意なデータの件数を正確に把握できる
sizeメソッドはシンプルな記述ですが、活用できる場面はたくさんあります。紹介したコード例を実際に動かして、データの個数を扱う感覚を身に付けてください。
sizeメソッドを使いこなせるようになれば、Javaのコレクション操作がぐっとスムーズになります。
レベルを更に上げたい方はpaizaプログラミングスキルチェック