Pab*_*dez 122
Integer[] array = {1,2,3,4,5,6};
Arrays.asList(array).indexOf(4);
Run Code Online (Sandbox Code Playgroud)
请注意,此解决方案是线程安全的,因为它创建了一个List类型的新对象.
你也不想在循环中或类似的东西中调用它,因为你每次都要创建一个新对象
bti*_*nay 26
如果您使用Guava Collections,另一个选择是Ints.indexOf
// Perfect storm:
final int needle = 42;
final int[] haystack = [1, 2, 3, 42];
// Spoiler alert: index == 3
final int index = Ints.indexOf(haystack, needle);
Run Code Online (Sandbox Code Playgroud)
当空间,时间和代码重用非常宝贵时,这是一个很好的选择.它也非常简洁.
Jam*_*tis 17
看一下API,它说你必须先对数组进行排序
所以:
Arrays.sort(array);
Arrays.binarySearch(array, value);
Run Code Online (Sandbox Code Playgroud)
如果您不想对数组进行排序:
public int find(double[] array, double value) {
for(int i=0; i<array.length; i++)
if(array[i] == value)
return i;
}
Run Code Online (Sandbox Code Playgroud)
Dal*_*ngh 12
将此方法复制到您的班级
public int getArrayIndex(int[] arr,int value) {
int k=0;
for(int i=0;i<arr.length;i++){
if(arr[i]==value){
k=i;
break;
}
}
return k;
}
Run Code Online (Sandbox Code Playgroud)
使用传递两个参数Array和value调用此方法,并将其返回值存储在整数变量中.
int indexNum = getArrayIndex(array,value);
Run Code Online (Sandbox Code Playgroud)
谢谢
小智 6
ArrayUtils.indexOf(array, value);
Ints.indexOf(array, value);
Arrays.asList(array).indexOf(value);
Run Code Online (Sandbox Code Playgroud)
您可以使用现代 Java 来解决这个问题。请使用以下代码:
static int findIndexOf(int V, int[] arr) {
return IntStream.range(0, arr.length)
.filter(i->arr[i]==V)
.findFirst()
.getAsInt();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
442007 次 |
最近记录: |