我有一个float [],我想得到一个具有相同元素的列表.我可以做一个又一个添加它们的丑陋的事情,但我想使用Arrays.asList方法.但是有一个问题.这有效:
List<Integer> list = Arrays.asList(1,2,3,4,5);
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
int[] ints = new int[] {1,2,3,4,5};
List<Integer> list = Arrays.asList(ints);
Run Code Online (Sandbox Code Playgroud)
asList方法接受一个varargs参数,对我来说,扩展是一个数组的"简写".
问题:
为什么第二段代码返回List<int[]>但不返回List<int>.
有没有办法纠正它?
为什么自动装箱不在这里工作; 即int[]到Integer[]?
在Java中,使用java.util.Arrays以下代码:
float[] arr = {(float)0.2, (float)4.5};
Float[] brr = {new Float(0.2), new Float(4.5)};
Float x = new Float(4.5);
float y = (float)4.5;
System.out.println(Arrays.asList(arr).indexOf(x));
System.out.println(Arrays.asList(arr).indexOf(y));
System.out.println(Arrays.asList(brr).indexOf(x));
System.out.println(Arrays.asList(brr).indexOf(y));
Run Code Online (Sandbox Code Playgroud)
给
-1
-1
1
1
Run Code Online (Sandbox Code Playgroud)
我的问题:如何在数组中搜索4.5的索引arr?
我认为这Arrays.asList(arr)会产生一个对象列表,arr但它的行为与其他数组不同,brr.
这个代码抛出
线程"main"中的异常java.lang.ArrayIndexOutOfBoundsException:1
在最后一行.是bug还是什么?(JDK 7)
int ar[] = {1,2,3};
List arList = Arrays.asList(ar);
arList.set(1,8);
Run Code Online (Sandbox Code Playgroud)