トップJava > Listの操作

Listの操作

Listインスタンスの生成

  List<Integer> list = new ArrayList<>();

リストの末尾に要素を追加する

  List<Integer> list = new ArrayList<>();
  list.add(1234);

プリミティブ型 int から Integer型に変換されて末尾に追加される。

リストの末尾に複数の要素を挿入する

  boolean addAll(Collection<? extends E> c)

指定されたコレクション内のすべての要素を、 指定されたコレクションのイテレータによって返される順序で、 このリストの最後に追加する。

リストの途中に要素を挿入する

  List<Integer> list = new ArrayList<>();
  list.add(12);
  list.add(56);
  list.add(1, 34);    // 56 の前に挿入される

リストの要素を削除する

  E	remove(int index)

このリスト内の指定された位置にある要素を削除する。

並び替え

  List<Integer> list = new ArrayList<>(56, 12, 34);
  Collections.sort(list);	// { 12, 34, 56 } の順に並び替えられる

clearメソッド

  List<Integer> list = new ArrayList<>(56, 12, 34);
  list.clear();

リストを再利用するときに使う。

部分リストを抽出する

  List<E> subList(int fromIndex, int toIndex)

このリストの、指定されたfromIndex (これを含む)からtoIndex (これを含まない)までの 部分のビューを返す。

配列に変換する

  Integer[] toArray(new Integer[0])

プリミティブ型の配列に変換する

処理時間やメモリ使用量を減らすため、Integer のリストを int配列に変換したいことがある。 次のように1行で書くことができる[2]。

 List<Integer> list = new ArrayList<>(56, 12, 34);
 int[] arr = list.stream().mapToInt(i -> i).toArray();

次のようにすれば分かりやすい。

 List<Integer> list = new ArrayList<>(56, 12, 34);
 int[] arr = new int[list.size()];
 for (int i = 0; i < arr.length; i++) {
    arr[i] = list.get(i);
 }

最大サイズが予測できるならば、最初から、 int配列を用意して、そこにint値をセットしていく方が単純で高速である。

リファレンス

[1] インタフェースList<E>
[2] Java で ArrayList を int 型配列に変換する