【发布时间】:2013-05-09 12:18:56
【问题描述】:
JVM 运行对象的 array 是否比对象的 ArrayList 快?
详细来说,假设我有两个变量
Object theObject = someObject;
Object[] objArr;
ArrayList objArrList;
假设 objArr 和 objArrList 具有相同的元素,将迭代 objArray 的元素,直到我发现感兴趣的元素与使用 objArrList.indexOf(...) 所花费的时间相同
即这是:
int length = objArray.length;
for(int i=0; i<length; i++){
if(objArray[i].equals(someObject)){
idx = i; break;
}
}
基本一样
objArrList.indexOf(theObject);
或 ArrayLists(和一般的Lists)是否具有比简单的-go-through-each-element-in-sequence 方法更好的优化搜索?
谢谢!
【问题讨论】:
-
Arraylist没有强制排序(并且不将元素存储在哈希表中),因此几乎可以肯定它对indexOf进行了简单的线性搜索。测量并查看速度是否大致相似! (或搜索ArrayList来源。) -
还要注意 ArrayList 实际上只是一个 Array 的包装器。
标签: java arrays search arraylist