gpt4 book ai didi

java - Arrays.asList() 无法正常工作?

转载 作者:行者123 更新时间:2023-12-02 00:04:58 25 4
gpt4 key购买 nike

我有一个 float[],我想获得一个包含相同元素的列表。我可以做一件丑陋的事情,将它们一一添加,但我想使用 Arrays.asList 方法。但有一个问题。这有效:

List<Integer> list = Arrays.asList(1,2,3,4,5);

但事实并非如此。

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

asList 方法接受一个 varargs 参数,据我所知,该参数是数组的“简写”。

问题:

  • 为什么第二段代码返回 List<int[]>但不是List<int> .

  • 有办法纠正吗?

  • 为什么自动装箱在这里不起作用;即int[]Integer[]

最佳答案

不存在List<int>这样的东西。在 Java 中 - 泛型不支持基元。

自动装箱仅适用于单个元素,而不适用于基元的数组

至于如何纠正它 - 有各种库提供了大量的方法来执行此类操作。没有办法解决这个问题,而且我认为 JDK 中没有任何东西可以让它变得更容易。有些会将原始数组包装在包装类型的列表中(以便在访问时进行装箱),其他人将迭代原始数组以创建独立的副本,并在运行过程中进行装箱。确保您知道自己正在使用哪个。

(编辑:我一直假设 int[] 的起点是不可协商的。如果您可以从 Integer[] 开始,那么您就已经很不错了:)

仅作为辅助库的一个示例,并插入 Guava一点,有 com.google.common.primitive.Ints.asList .

关于java - Arrays.asList() 无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58161104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com