【发布时间】:2015-10-22 13:05:30
【问题描述】:
Java 中的以下代码返回 -1。我认为它应该返回 3。
int[] array = {1,2,3,4,5,6};
System.out.println(Arrays.asList(array).indexOf(4));
你能帮我理解一下这个函数是如何工作的吗?
谢谢
【问题讨论】:
-
Arrays.asList不适用于原始数组。它给出了一个包含原始int[]的List<int[]>。 -1 表示 4 不是List项之一 -
Arrays.asList(int[])正在创建一个包含整个int[]数组的元素的List。将int[]改为Integer[] -
尝试显式地编写
asList的泛型类型(Arrays.<int>asList(array))而不是依赖类型推断,编译器会告诉你为什么这样行不通。 -
Guava's
Ints.asList()解决了这个问题; more info.