在 Java 中将数组转换为列表

新手上路,请多包涵

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

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

例如:

 int[] numbers = new int[] { 1, 2, 3 };
Arrays.asList(numbers)

  • 在 1.4.2 上返回包含元素 1、2、3 的列表
  • 在 1.5.0+ 上返回一个包含数组“numbers”的列表

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

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

原文由 Alexandru 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 494
2 个回答

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

但是,您可以使用 List<Integer> Integer 包装 int 原语的类来拥有 —。使用 Arrays.asList 实用方法将数组转换为 List —。

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

在 IdeOne.com 上查看此代码的实时运行

原文由 Joe Daley 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

原文由 Ibrahim Arief 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题