首页 > Java > java教程 > 为什么 Arrays.asList() 不适用于原始数组?

为什么 Arrays.asList() 不适用于原始数组?

DDD
发布: 2025-01-03 07:06:39
原创
703 人浏览过

Why Doesn't Arrays.asList() Work with Primitive Arrays?

Arrays.asList() 和原始数组

尝试使用 Arrays.asList( 将原始数据数组转换为列表时) 方法,可能会遇到不一致的情况。本文探讨了该问题并提供了解决方案。

问题说明

Arrays.asList() 方法接受表示数组的变量参数。但是,与 Integer[] 等引用类型不同,它不支持 int[] 等基本数据类型。因此,提供的第二个示例:

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

返回 List,而不是 List

自动装箱

自动装箱,将原始数据类型转换为其包装器对应项,不适用于数组基元。因此,int[]数组不会自动转换为Integer[]数组。

解决方案

要解决此问题,可以利用第三方库,例如作为 Guava 的 com.google.common.primitive.Ints.asList 方法。它从原始数组创建一个装箱值列表。或者,可以手动创建一个 Integer[] 数组并从 int[] 数组中赋值,即

int[] ints = new int[] {1,2,3,4,5};
Integer[] integers = new Integer[ints.length];
for (int i = 0; i < ints.length; i++) {
    integers[i] = ints[i];
}
List<Integer> list = Arrays.asList(integers);
登录后复制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板