关于arrays 中aslist 转换问题

本文探讨了在Java中使用Arrays.asList()转换int数组时遇到的问题,发现该方法并未按预期创建一个包含{1, 2, 3, 4}的列表。原因是intArray被当作Object处理,导致返回的列表只有一个元素,即int数组的引用。解决方法包括将intArray声明为Integer[]或直接使用Arrays.asList()添加整数。通过示例展示了正确实现的代码和预期输出。" 103414550,9129530,MNIST手写体识别:单神经元CNN模型,"['深度学习', '图像识别', '神经网络', '机器学习', '模型训练']

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

今天看到Arrays 中asList 的用法,遇见了一些问题,现在自己已经解决
    int[] intArray = new int[]{1, 2, 3, 4};
    List<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    List listFromArray = Arrays.asList(intArray);
    System.out.println(listFromArray);
    System.out.println(list);
输出结果是
[[I@c17164]
[1, 2, 3, 4]
也就是说Arrays.asList()并没有返回一个{1,2,3,4}的List
原因在于,JDK5中asList接受变长参数表了,把intArray作为单独的参数传递给asList方法的时候,编译器会把它当作一个Object处理,于是返回了只有一个元素的List,而这个元素应该就是指向int[]的引用。
解决方法之一是把intArray声明为Integer[],即
Integer[] intArray = new Integer[]{new Integer(1), new Integer(2), new Integer(3), new Integer(4)};
//或者直接一开始就添加List<Integer> list = new ArrayList<Integer>();
list=addArrays.asList(1,2,3,4)
List<Integer> listFromArray2 = Arrays.asList(intArray2);
System.out.println(listFromArray2);
这样就能看到预期结果了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值