Quantcast
Channel: 配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 757

【Java】 ArrayList→配列変換ではサイズを指定するべきなのか

$
0
0

配列のサイズを指定する場合

ListToArray.java
ArrayList<String>arrayList=newArrayList<String>();for(inti=0;i<10000000;i++){// ← 1億arrayList.add("A");}longarray1Start=System.currentTimeMillis();arrayList.toArray(newString[arrayList.size()]);// ←←ここlongarray1End=System.currentTimeMillis();System.out.println("処理時間:"+(array1End-array1Start)+" ms");

結果

処理時間:3179 ms

配列のサイズを指定しない場合

ListToArray.java
ArrayList<String>arrayList=newArrayList<String>();for(inti=0;i<100000000;i++){// ← 1億arrayList.add("A");}longarray2Start=System.currentTimeMillis();arrayList.toArray(newString[0]);// ←←ここlongarray2End=System.currentTimeMillis();System.out.println("処理時間:"+(array2End-array2Start)+" ms");

結果

処理時間:3047 ms

え、ほぼ同じ・・・
その時のマシンの状況によるが、ほぼ同じ結果になる

評価する

パフォーマンス

 処理時間はほぼ同じ
 参照元をコピーするだけだからか。

可読性

arrayList.toArray(newString[arrayList.size()]);//明示的でわかりやすいarrayList.toArray(newString[0]);//0の意味を考えてしまう

結論

パフォーマンスはほぼ変わらないが、
可読性の観点でサイズを指定するべき


Viewing all articles
Browse latest Browse all 757

Trending Articles