猿问

在Java中将数组转换为列表

在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);


蝴蝶刀刀
浏览 635回答 3
3回答

函数式编程

在Java 8中,您可以使用流:int[] spam = new int[] { 1, 2, 3 };Arrays.stream(spam)       .boxed()       .collect(Collectors.toList());

温温酱

谈到转换方式,这取决于你为什么需要你的List。如果您需要它只是为了读取数据。好的,你走了:Integer[]&nbsp;values&nbsp;=&nbsp;{&nbsp;1,&nbsp;3,&nbsp;7&nbsp;};List<Integer>&nbsp;list&nbsp;=&nbsp;Arrays.asList(values);但是如果你做这样的事情:list.add(1);你得到java.lang.UnsupportedOperationException。所以在某些情况下你甚至需要这个:Integer[]&nbsp;values&nbsp;=&nbsp;{&nbsp;1,&nbsp;3,&nbsp;7&nbsp;};List<Integer>&nbsp;list&nbsp;=&nbsp;new&nbsp;ArrayList<Integer>(Arrays.asList(values));第一种方法实际上不转换数组,但“代表”它就像一个List。但是数组是所有属性的固定数量的元素。请注意,您需要在构建时指定类型ArrayList。
随时随地看视频慕课网APP

相关分类

Java
我要回答