在Java中将数组转换为列表如何将数组转换为Java中的列表?我使用了Arrays.asList()但是行为(和签名)以某种方式从Java SE 1.4.2(现在存档中的文档)更改为8,并且我在Web上找到的大多数片段使用1.4.2行为。例如:int[] spam = new int[] { 1, 2, 3 };Arrays.asList(spam)在1.4.2上返回一个包含元素1,2,3的列表在1.5.0+上返回包含阵列垃圾邮件的列表在许多情况下,它应该很容易被发现,但有时它可能会被忽视:Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);
3 回答

函数式编程
TA贡献1807条经验 获得超9个赞
在Java 8中,您可以使用流:
int[] spam = new int[] { 1, 2, 3 };Arrays.stream(spam) .boxed() .collect(Collectors.toList());

温温酱
TA贡献1752条经验 获得超4个赞
谈到转换方式,这取决于你为什么需要你的List
。如果您需要它只是为了读取数据。好的,你走了:
Integer[] values = { 1, 3, 7 };List<Integer> list = Arrays.asList(values);
但是如果你做这样的事情:
list.add(1);
你得到java.lang.UnsupportedOperationException
。所以在某些情况下你甚至需要这个:
Integer[] values = { 1, 3, 7 };List<Integer> list = new ArrayList<Integer>(Arrays.asList(values));
第一种方法实际上不转换数组,但“代表”它就像一个List
。但是数组是所有属性的固定数量的元素。请注意,您需要在构建时指定类型ArrayList
。
添加回答
举报
0/150
提交
取消