【Java入門】配列やArrayList(可変長)の要素数を取得、追加する方法

こんにちは!フリーランスのオータケです。

「要素数」は配列を扱う上でとても重要です!

例えば、配列の全ての要素を参照する場合にfor文の繰り返し処理を行うことも多いかと思います。

for文の終了条件を指定するために、配列の要素数を取得して使用することはよくあります。

この記事では、配列の要素数を取得する方法について

・配列の要素数(サイズ)を取得する方法
・ArrayListの要素数を取得する方法

という基本的な内容から

・配列の要素数を追加したい場合

など応用的な内容についても解説していきます。

今回は配列の要素数を取得する方法について、使い方をわかりやすく解説します!

なお、Javaの記事については、こちらにまとめています。

目次

配列の要素数(サイズ)を取得する方法

配列には要素数があらかじめ決まっている固定長の配列と後でも変更できる可変長の配列(リスト)があります。

それぞれの要素数を取得する方法について表にまとめました。

配列(固定長)リスト(可変長)
要素数を取得する構文配列名.lengthリスト名.size()

それぞれの使い方について解説をします。

配列(固定長)の場合

固定長の配列の要素数を取得するには、lengthを使用します。

以下のように記述します。

配列名.length

サンプルコードで確認してみましょう。

public class Main {
 
    public static void main(String[] args) {
        int[] foo = new int[10];
        System.out.println(foo.length);
    }

}

実行結果:

10

ArrayList(可変長)の場合

ArrayListは後でも要素数が変えられる可変長の配列(リスト)です。

ArrayListの場合はsizeメソッドを呼び出すことで配列の要素数を取得することができます。

以下のように記述します。

リスト名.size()

サンプルコードで確認しましょう。

import java.util.ArrayList;

public class Main {
 
    public static void main(String[] args) {
        ArrayList<Integer> hoge = new ArrayList<>();
        hoge.add(88);
        hoge.add(24);
        hoge.add(63);
 
        System.out.println(hoge.size());
    }

}

実行結果:

3

配列の要素数を追加したい場合

配列の要素数を途中で変更したい場合があります。

配列(固定長)とArrayList(可変長)の場合について、それぞれ解説します。

配列(固定長)の場合

固定長の配列は要素数を一度決めたら変更できないために、シンプルな書き方ができません。

次のように、arraycopyメソッドを使って要素数を大きくした配列を用意し、値をコピーして使います。

int[] foo = new int[10]; // 元の配列
int[] bar = new int[15]; // データを5個追加したい場合に用意する配列
 
System.arraycopy(foo, 0, bar, 0, 10);

詳しい内容についてはこちらのサイトを参考にしてくださいね。

ArrayList(可変長)の場合

ArrayListは可変長の配列であるため、addremoveといったメソッドを使うことで要素の追加削除が行われ要素数も変わります

要素を追加する場合は、次のように記述します。

List<要素の型名> リスト名 = new ArrayList<要素の型名>();
リスト名.add(要素の値);

詳しい内容についてはコードも含めて解説していますので、こちらをご覧ください!

配列についてもっと詳しく知りたい!

配列についてもっと知りたい方はこちらもご覧ください!

まとめ

いかがだったでしょうか?

今回は配列の要素数を取得する方法について解説してきました。

固定長の配列ではlengthを使い、可変長の配列ArrayListの場合はsizeメソッドを使うことで要素数を取得することができます。

配列を扱う上でこの2つは頻繁に使うことになると思いますので忘れないようにしましょう!

この記事を書いた人

30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。

目次