メモ
private static final void test1(List list)
{
String str = null;
for (int index =0; index < list.size(); index++)
{
str = (String) list.get(index);
}
}
private static final void test2(List list)
{
String str = null;
for (int index =0, size = list.size(); index < size; index++)
{
str = (String) list.get(index);
}
}
private static final void test3(List list)
{
String str = null;
int index = list.size() - 1;
while(0 < index)
{
str = (String) list.get(index);
index--;
}
}
private static final void test4(List list)
{
String str = null;
for (Iterator itr = list.iterator(); itr.hasNext();)
{
str = (String) itr.next();
}
}
private static final void test5(List list)
{
String str = null;
Iterator itr = list.iterator();
while (itr.hasNext())
{
str = (String) itr.next();
}
}
private static final void test6(Listlist)
{
String str = null;
for (int index =0, size = list.size(); index < size; index++)
{
str = list.get(index);
}
}
test1:188
test2:125
test3:125
test4:234
test5:235
test6:125
イテレータってこんな遅いのか。
list.size()は毎回呼び出すとかなり遅くなるのね。
0比較は自分が読みにくくなるので嫌い。
listにはArrayListを使用しています。
単純に速度の比較をしただけであり、実用性とは関係ありません。
Listの実装クラスによって結果は異なります。以下は、ご指摘下さった方へのリンクです。ご指摘ありがとうございます。
http://yoshiori.org/blog/2006/12/javaiterator.php
http://d.hatena.ne.jp/t_yano/20070128/1170006946