int[ ] 和Integer[ ]数组使用asList的区别

本文探讨了在Java中使用Arrays.asList转换int[]和Integer[]数组时的区别。当尝试将int[]转换时,返回的是数组的地址,而Integer[]则返回包含所有元素的列表。原因在于Arrays.asList()方法处理对象数组时能识别数组元素,但基础类型数组被视为单个对象。此外,文章还介绍了可变参数的概念,即在函数定义中使用三个点表示的可变数量参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例子

        int [] arrs1={1,2,3,4,5};
        Integer []arrs2={1,2,3,4,5};
        System.out.println(Arrays.asList(arrs1));
        System.out.println(Arrays.asList(arrs2));

输出结果:
[[I@7a0ac6e3]
[1, 2, 3, 4, 5]

为什么结果不同?
·Arrays.asList()接受的是可变参数,返回一个受指定对象数组支持的固定大小的列表。
·Integer数组是对象数组,asList检测到Integer数组里有5个对象,所以正确返回5个元素
·Int数组是基础类型的数组,asList认为int数组是一个对象,因此放回的是数组地址

什么是可变参数?
·在不确定参数的个数时,可以使用可变的参数列表。
·语法:参数类型…(三个点)
例如: void printArray(Object…)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值