JavaSDKだとiteratorを使うのが普通ですが、
dojaだとiteratorはないので、Enumerationとforループのどちらかを選ぶことになります。
どっちが早いのか気になるので、試してみました。
public class ListMain extends IApplication {
public void start() {
Vector vec = new Vector();
for(int i = 0; i < 200000; i++){
vec.addElement(new Integer(i));
}
long startTime = System.currentTimeMillis();
for(Enumeration en = vec.elements(); en.hasMoreElements();){
int hoge = ((Integer)en.nextElement()).intValue();
}
System.out.println("Time to enumerate:"+(System.currentTimeMillis()-startTime));
startTime = System.currentTimeMillis();
for(int i = 0; i < vec.size(); i++){
int hoge = ((Integer)vec.elementAt(i)).intValue();
}
System.out.println("Time to for :"+(System.currentTimeMillis()-startTime));
}
}
実行結果は、
Time to enumerate:250
Time to for :172
となり、forループのほうが早いことが分かりました。
なんと。
Enumerationの使い道がありません。
0 件のコメント:
コメントを投稿