在Java中将数组转换为列表

2022-01-31 00:00:00 list arrays data-conversion java

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

How do I convert an array to a list in Java?

我使用了 Arrays.asList() 但行为(和签名)不知何故从 Java SE 1.4.2(文档现在存档)到 8 和我在网上找到的大多数片段都使用 1.4.2 行为.

I used the Arrays.asList() but the behavior (and signature) somehow changed from Java SE 1.4.2 (docs now in archive) to 8 and most snippets I found on the web use the 1.4.2 behaviour.

例如:

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

  • 在 1.4.2 上返回一个包含元素 1、2、3 的列表
  • 在 1.5.0+ 上返回一个包含数组 spam 的列表
  • 在许多情况下,它应该很容易被发现,但有时它可能会被忽视:

    In many cases it should be easy to detect, but sometimes it can slip unnoticed:

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

    推荐答案

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

    In your example, it is because you can't have a List of a primitive type. In other words, List<int> is not possible.

    但是,您可以使用 List<Integer>java.base/java/lang/Integer.html" rel="noreferrer">Integer 类,它包装了 int 原语.将您的数组转换为 ListArrays.asList 实用方法.

    You can, however, have a List<Integer> using the Integer class that wraps the int primitive. Convert your array to a List with the Arrays.asList utility method.

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

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

相关文章