我一定是错过了一些非常明显的东西,但我已经搜索了所有,不能找到这个方法。
当前回答
Java数组列表有一个indexOf方法。Java数组没有这样的方法。
其他回答
对于原语数组,如果你想避免装箱,Guava为原语数组提供了帮助,例如int。indexOf(int[]数组,int目标)
List接口有一个indexOf()方法,您可以使用array的asList()方法从数组中获取List。除此之外,Array本身没有这样的方法。它确实有一个用于排序数组的binarySearch()方法。
数组本身没有这个方法。然而,A List做到了: indexOf
没有。或者使用java.util。List*,或者你可以自己写indexOf():
public static <T> int indexOf(T needle, T[] haystack)
{
for (int i=0; i<haystack.length; i++)
{
if (haystack[i] != null && haystack[i].equals(needle)
|| needle == null && haystack[i] == null) return i;
}
return -1;
}
*你可以使用数组#asList()创建一个数组
使用Arrays实用程序类有几种方法可以实现这一点。
如果数组没有排序,也不是基元数组:
java.util.Arrays.asList(theArray).indexOf(o)
如果数组是原语且没有排序,则应该使用由其他答案之一提供的解决方案,如Kerem baydo土耳其的,Andrew McKinlay的或Mishax的。即使theArray是基本的(可能会发出警告),上面的代码也会被编译,但您仍然会得到完全错误的结果。
如果数组是排序的,你可以使用二进制搜索性能:
java.util.Arrays.binarySearch(theArray, o)
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 使用C返回一个数组
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 向对象数组添加属性
- 在Java流是peek真的只是调试?