gpt4 book ai didi

java - ArrayList.indexOf 与对象数组的顺序搜索

转载 作者:行者123 更新时间:2023-11-30 07:16:56 27 4
gpt4 key购买 nike

JVM 是否比对象的 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);

ArrayList(以及一般的列表)是否具有比简单的按顺序遍历每个元素的方法更好的优化搜索?

谢谢!

最佳答案

下面复制了ArrayList.indexOf(Object o)的实现

public int indexOf(Object o) {
if (o == null) {
for (int i = 0; i < size; i++)
if (elementData[i]==null)
return i;
} else {
for (int i = 0; i < size; i++)
if (o.equals(elementData[i]))
return i;
}
return -1;
}

它的作用与您对数组所做的完全相同。 (对 null 进行一些不同的检查)。

因此 JVM 将在相同的时间内运行两者。

关于java - ArrayList.indexOf 与对象数组的顺序搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16556378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com