<更新記録>
2007年 11月 8日
作成

姉妹サイト検索 Web検索


配列からリスト作成

例えば、以下のような配列があったとします。

お題の配列
Integer[] numbers = {1, 2, 4, 8, 16};

これをArrayListにしたい場合、もしかしたらこのように書いてしまうのではないでしょうか。

助長な書き方
ArrayList<Integer> nList = new ArrayList<Integer>();
for (int i=0 ; i < numbers.length ; i++) {
	nList.add(numbers[i]);
}

ただし、もっと短く書けます。(Javaネットワークプログラミングの真髄コード片より)

模範的な書き方
List<Integer> nl = Arrays.asList(mumbers);
ArrayList<Integer> nList = new ArrayList<Integer>(nl);

たった2行、しかも可読性もそう悪くはありません。 ListインターフェイスはCollectionを実装しているので、ArrayListの引数に与えることができるんですね。 しかも慣れれば、1行にまとめることもできます。

1行での書き方
ArrayList < Integer > nList = new ArrayList < Integer > (Arrays.asList(numbers));

利点と欠点を挙げたいところですが、 後者についていえば、 配列の要素数が多くなれば、ArrayList#addで何度も追加するよりも、はるかに早い速度が得られるので利点はあるのですが、 欠点はないように思えます。


Powered by VeryEasyCMS