メモの日々


2013年10月18日(金) [長年日記]

[java] java.util.Listを拡張する

C++のstd::vector#resize()のようにJavaのListのサイズを拡大したかったのだけれど、Listにはresize()メソッドは無い。

Collectionsのドキュメントを眺めていたらCollections#nCopies()の説明に

このメソッドは、List.addAll メソッドとともにリストを拡張するために使われます。

とあったので、このメソッドを使うのがいいみたい。意外と難しかったのでメモ。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ListResize {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3));
        list.addAll(Collections.<Integer>nCopies(5, null));
        System.out.println(list);
    }
}
[1, 2, 3, null, null, null, null, null]