我试图将int
数组转换为Set<Integer>
。在将数组转换为在java中设置时编译错误
int[] arr = {5, 2, 7, 2, 4, 7, 8, 2, 3};
Set<Integer> s = new HashSet<Integer>(Arrays.asList(arr));
但编译器不接受上面的代码。它说:“构造函数HashSet(List)是未定义的。”那么,我认为int
应该是autoboxed。
我稍微修改了代码,更改int
到String
:
String[] arr = {"hello", "world"};
Set<String> s = new HashSet<String>(Arrays.asList(arr));
此代码的工作好了。
我尝试以下,改变int
到Integer
:
Integer[] arr = {5, 2, 7, 2, 4, 7, 8, 2, 3};
Set<Integer> s = new HashSet<Integer>(Arrays.asList(arr));
这是通过编译。
我的问题是:为什么java编译器不接受第一个代码?
这可能会帮助你。 HTTP://计算器。com/questions/25890806/java-understanding-arrays-aslistt-array-method-for-primitive-types – ares 2014-09-24 10:05:50