在Java中把数组转换为列表
如何在Java中把一个数组转换为一个列表?
我使用了Arrays.asList()
,但行为(和签名)不知为何从Java SE 1.4.2 (现在文档在存档中)变为8,而我在网上找到的大多数片段都使用1.4.2的行为。
比如说。
int[] spam = new int[] { 1, 2, 3 };
Arrays.asList(spam)
在1.4.2版本中,返回一个包含元素1、2、3的列表。 在1.5.0以上版本中,返回一个包含数组spam的列表
在许多情况下,它应该很容易被发现,但有时它也会在不知不觉中溜走。
Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);
948
3
在你的例子中,这是因为你不可能有一个原始类型的List。换句话说,
List
是不可能的。然而,你可以使用包装了 "int "基元的
Integer
类来建立一个 "List"。用Arrays.asList
实用方法将你的数组转换为List
。请看这个代码在IdeOne.com现场运行。
问题是Java5中引入了varargs,不幸的是,
Arrays.asList()
也被重载为vararg版本。所以Arrays.asList(spam)
被Java5编译器理解为int数组的vararg参数。这个问题在Effective Java第二版第7章第42项中有更详细的解释。
你必须投到数组中去