gpt4 book ai didi

java - 循环中的嵌套 if 语句与两个单独的循环

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:27 24 4
gpt4 key购买 nike

这是源代码:

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;
}

为什么不这样:只有一个循环和 if 语句。

public int indexOf(Object o) {

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

return -1;
}

第一个片段必须有两个循环,但有人说上面的代码性能很好。为什么?

最佳答案

实际上,两个代码段的作用相同。但是,第二个代码片段的性能可能更差,因为比较语句被评估了多次,而不是第一个代码片段中仅进行了一次比较。每个代码片段经过的循环迭代次数相同,但所需的比较次数不同。就这么简单。

关于java - 循环中的嵌套 if 语句与两个单独的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224132/

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