int[] sorted = {10,67,68,28};
int[] sortedOriginal = sorted.clone();
Arrays.sort(sorted);
System.out.println(Arrays.asList(sorted).indexOf(sortedOriginal[0]));
Run Code Online (Sandbox Code Playgroud)
在这个非常简单的代码中,我创建了一个int数组,克隆它,并对原始数据进行排序.之后我尝试找到给定某个值的索引并返回-1.
这没有意义.有谁知道为什么会这样,修复是什么?
Arrays.asList(sorted)返回具有单个int[]元素的List .这是它在原始数组上的工作方式,因此它不包含sortedOriginal[0](另一方面Arrays.asList(sorted).indexOf(sorted)它将返回0).
如果您使用Integer[]数组,您的代码将起作用.