我一定是错过了一些非常明显的东西,但我已经搜索了所有,不能找到这个方法。
当前回答
int findIndex(int myElement, int[] someArray){
int index = 0;
for(int n: someArray){
if(myElement == n) return index;
else index++;
}
}
注意:你可以将此方法用于int类型的数组,你也可以将此算法用于其他稍有变化的类型
其他回答
int findIndex(int myElement, int[] someArray){
int index = 0;
for(int n: someArray){
if(myElement == n) return index;
else index++;
}
}
注意:你可以将此方法用于int类型的数组,你也可以将此算法用于其他稍有变化的类型
Jeffrey Hantin的答案很好,但它有一些限制,如果它是这个做这个或那个…
你可以编写自己的扩展方法,它总是以你想要的方式工作。
Lists.indexOf(array, x -> item == x); // compare in the way you want
这是您的分机号码
public final class Lists {
private Lists() {
}
public static <T> int indexOf(T[] array, Predicate<T> predicate) {
for (int i = 0; i < array.length; i++) {
if (predicate.test(array[i])) return i;
}
return -1;
}
public static <T> int indexOf(List<T> list, Predicate<T> predicate) {
for (int i = 0; i < list.size(); i++) {
if (predicate.test(list.get(i))) return i;
}
return -1;
}
public interface Predicate<T> {
boolean test(T t);
}
}
Java数组列表有一个indexOf方法。Java数组没有这样的方法。
我不记得在数组上有一个“indexOf”,除了为自己编写它…如果数组包含基本类型,则可以使用java.util.Arrays#binarySearch(…)方法之一(参见Arrays javadoc)
List接口有一个indexOf()方法,您可以使用array的asList()方法从数组中获取List。除此之外,Array本身没有这样的方法。它确实有一个用于排序数组的binarySearch()方法。