我一定是错过了一些非常明显的东西,但我已经搜索了所有,不能找到这个方法。


当前回答

使用Arrays实用程序类有几种方法可以实现这一点。

如果数组没有排序,也不是基元数组:

java.util.Arrays.asList(theArray).indexOf(o)

如果数组是原语且没有排序,则应该使用由其他答案之一提供的解决方案,如Kerem baydo土耳其的,Andrew McKinlay的或Mishax的。即使theArray是基本的(可能会发出警告),上面的代码也会被编译,但您仍然会得到完全错误的结果。

如果数组是排序的,你可以使用二进制搜索性能:

java.util.Arrays.binarySearch(theArray, o)

其他回答

使用Arrays实用程序类有几种方法可以实现这一点。

如果数组没有排序,也不是基元数组:

java.util.Arrays.asList(theArray).indexOf(o)

如果数组是原语且没有排序,则应该使用由其他答案之一提供的解决方案,如Kerem baydo土耳其的,Andrew McKinlay的或Mishax的。即使theArray是基本的(可能会发出警告),上面的代码也会被编译,但您仍然会得到完全错误的结果。

如果数组是排序的,你可以使用二进制搜索性能:

java.util.Arrays.binarySearch(theArray, o)

List接口有一个indexOf()方法,您可以使用array的asList()方法从数组中获取List。除此之外,Array本身没有这样的方法。它确实有一个用于排序数组的binarySearch()方法。

我不记得在数组上有一个“indexOf”,除了为自己编写它…如果数组包含基本类型,则可以使用java.util.Arrays#binarySearch(…)方法之一(参见Arrays javadoc)

数组本身没有这个方法。然而,A List做到了: indexOf

您可能会想到java.util。数组列表,而不是数组。