Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

Java辞典

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

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

可変長のリストを作成し、要素を追加・変更・取得するためのメソッドです。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始まりです。
サンプルコード
import java.util.ArrayList;

// ArrayList を作成して要素を追加します。
ArrayList<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
System.out.println(fruits); // 『[apple, banana, cherry]』と出力されます。

// 指定した位置に要素を挿入します。
fruits.add(1, "blueberry"); // インデックス1の位置に挿入します。
System.out.println(fruits); // 『[apple, blueberry, banana, cherry]』と出力されます。

// get() で要素を取得します。
System.out.println(fruits.get(0)); // 『apple』と出力されます。
System.out.println(fruits.get(2)); // 『banana』と出力されます。

// set() で要素を変更します。
String old = fruits.set(0, "avocado"); // 先頭を変更します。
System.out.println(old);    // 変更前の値『apple』と出力されます。
System.out.println(fruits); // 『[avocado, blueberry, banana, cherry]』と出力されます。

// 数値のリストを使う例です。
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 がスローされます。
概要

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

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

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

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