言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Java辞典

  1. トップページ
  2. Java辞典
  3. new ArrayList<>() / リスト.add() / set() / get()

new ArrayList<>() / リスト.add() / set() / get()

対応: Java 1.2(1998)

可変長のリストを作成し、要素を追加・変更・取得するためのメソッドです。ArrayList は配列と違って要素数を動的に変更できるため、サイズが事前に決まらないデータを扱う場面で広く使われます。

構文

import java.util.ArrayList;

// 空の ArrayList を作成します。
new ArrayList<型>();

// 末尾に要素を追加します。
リスト.add(E e);

// 指定した位置に要素を挿入します。
リスト.add(int index, E e);

// 指定した位置の要素を変更します。
リスト.set(int index, E element);

// 指定した位置の要素を取得します。
リスト.get(int index);

メソッド一覧

メソッド概要
new ArrayList<>()空の可変長リストを作成します。型引数にはリストに格納する要素の型を指定します。
add(E e)リストの末尾に要素を追加します。追加が成功した場合は true を返します。
add(int index, E e)指定したインデックスに要素を挿入します。それ以降の要素は後ろにシフトされます。
set(int index, E element)指定したインデックスの要素を新しい値に置き換えます。置き換え前の要素を返します。
get(int index)指定したインデックスの要素を返します。インデックスは0始まりです。

サンプルコード

sample_ArrayListAddGet.java
import java.util.ArrayList;

class ArrayListAddGet {
    public static void main(String[] args) {
        // ArrayList を作成して要素を追加します。
        ArrayList<String> fighters = new ArrayList<>();
        fighters.add("八神庵");
        fighters.add("草薙京");
        fighters.add("テリー・ボガード");
        System.out.println(fighters); // 『[八神庵, 草薙京, テリー・ボガード]』と出力されます。

        // 指定した位置に要素を挿入します。
        fighters.add(1, "ブルー・マリー"); // インデックス1の位置に挿入します。
        System.out.println(fighters); // 『[八神庵, ブルー・マリー, 草薙京, テリー・ボガード]』と出力されます。

        // get() で要素を取得します。
        System.out.println(fighters.get(0)); // 『八神庵』と出力されます。
        System.out.println(fighters.get(2)); // 『草薙京』と出力されます。

        // set() で要素を変更します。
        String old = fighters.set(0, "ゲーニッツ"); // 先頭を変更します。
        System.out.println(old);      // 変更前の値『八神庵』と出力されます。
        System.out.println(fighters); // 『[ゲーニッツ, ブルー・マリー, 草薙京, テリー・ボガード]』と出力されます。

        // 数値のリストを使う例です。
        ArrayList<Integer> nums = new ArrayList<>();
        for (int i = 1; i <= 5; i++) {
            nums.add(i * 10);
        }
        System.out.println(nums); // 『[10, 20, 30, 40, 50]』と出力されます。

        // インデックス範囲外のアクセスは例外になります。
        // System.out.println(nums.get(10)); // IndexOutOfBoundsException がスローされます。
    }
}
javac ArrayListAddGet.java
java ArrayListAddGet
[八神庵, 草薙京, テリー・ボガード]
[八神庵, ブルー・マリー, 草薙京, テリー・ボガード]
八神庵
草薙京
八神庵
[ゲーニッツ, ブルー・マリー, 草薙京, テリー・ボガード]
[10, 20, 30, 40, 50]

概要

ArrayList はJavaで最もよく使われるコレクションクラスです。内部的には配列で実装されており、末尾への追加(add())と要素の取得(get())はO(1)で高速に動作します。一方、途中への挿入はそれ以降の要素をシフトする必要があるためO(n)になります。

プリミティブ型(int, double など)は直接格納できません。ラッパークラス(Integer, Double など)を使用してください。ただし、Java のオートボクシング機能により nums.add(1) のように書くと自動的に Integer に変換されます。

要素の削除やサイズ確認には『remove() / clear() / size()』、要素の検索には『contains() / indexOf()』を使用してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。