在 Java 中将数组转换为列表

2022-08-31 03:56:44

如何在Java中将数组转换为列表?

我使用了但行为(和签名)以某种方式从Java SE 1.4.2(文档现在存档)更改为8,我在Web上找到的大多数代码段都使用1.4.2行为。Arrays.asList()

例如:

int[] numbers = new int[] { 1, 2, 3 };
Arrays.asList(numbers)
  • on 1.4.2 返回包含元素 1、2、3 的列表
  • on 1.5.0+ 返回一个包含数组“numbers”的列表

在许多情况下,它应该很容易被检测到,但有时它可能会被忽视:

Assert.assertTrue(Arrays.asList(numbers).indexOf(4) == -1);

答案 1

在您的示例中,这是因为您不能拥有基元类型的 List。换句话说,是不可能的。List<int>

但是,您可以使用包装基元的 Integer 类。使用 Arrays.asList 实用工具方法将数组转换为 ListList<Integer>int

Integer[] numbers = new Integer[] { 1, 2, 3 };
List<Integer> list = Arrays.asList(numbers);

请参阅此代码在 IdeOne.com 实时运行


答案 2

在 Java 8 中,您可以使用流:

int[] numbers = new int[] { 1, 2, 3 };
Arrays.stream(numbers)
      .boxed()
      .collect(Collectors.toList());