【发布时间】:2015-04-18 15:45:18
【问题描述】:
假设我们有一个对象数组,我想在列表中查找特定对象的索引,一般我会使用方法
public static int findIndex(Object[] arr, Object o) {
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i].equals(o)) {
index = i;
break;
}
}
return index;
}
但是,只有使用 java.lang 包,有没有更快的方法来做到这一点?
【问题讨论】:
-
更有效的方式是什么意思?什么对你有效? Java 8 中有一个惰性评估,但是当我用您的方法对其进行基准测试时,您的方法更快。
-
让我改述一下:一种比上述方法运行得更快的方法!谢谢
-
在 Java 8 中查找 findfirst 并将其与您的方法进行比较,就我测试而言,您会发现您的方法更快
-
你可以用更少的行来完成,但不会更快,除非你对数组内容有所了解。
-
搜索算法有很多,但都有自己的假设。例如,如果您的列表要排序,您可以使用二分法。
标签: java