首页 >Java >java教程 >为什么 Arrays.asList() 对 Java 中的原始数组表现不佳?

为什么 Arrays.asList() 对 Java 中的原始数组表现不佳?

Susan Sarandon
Susan Sarandon原创
2024-12-20 01:13:08810浏览

Why Does Arrays.asList() Misbehave with Primitive Arrays in Java?

为什么 Arrays.asList() 对于基元可能会很棘手

Java 的 Arrays.asList() 方法允许您将数组转换为列表。但是,它对于原始数组可能会出现意外的行为。

问题:为什么 Arrays.asList(int[]) 返回一个 List ?而不是 List

答案: Java 泛型不支持原始类型。相反,他们使用包装类(例如 Integer、Float)。 Arrays.asList() 返回与传递的数组类型完全相同的列表。由于int[]是一个int数组,所以结果是List

问题:有没有办法将int[]转换为List ;?

答案: 不,没有直接的方法来转换 int[]到一个列表使用 Arrays.asList()。

问题:为什么自动装箱在这种情况下不起作用?

答案:自动装箱仅针对个人进行原始值,不适用于原始数组。因此,int[] int 无法自动转换为 Integer[]。

解决方案:

获取 List从基元数组中,您可以使用提供附加功能的第三方库,例如 Guava 的 com.google.common.primitive.Ints.asList() 方法。此方法显式地围绕 int[] 数组创建一个 List 包装器,其中每个元素都装箱为 Integer。

或者,如果您可以自由地从 Integer[] 数组开始,则可以使用 Arrays.asList () 直接返回一个 List

以上是为什么 Arrays.asList() 对 Java 中的原始数组表现不佳?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn