黑马程序员技术交流社区
标题:
关于关于Arrays中asList方法的疑惑
[打印本页]
作者:
蜡笔
时间:
2015-4-10 18:28
标题:
关于关于Arrays中asList方法的疑惑
int[] a1=new int[]{1,2,3};
String[] a2=new String[]{"ad","ff","ee"};
System.out.println(Arrays.asList(a1));//打印结果为[[I@1f33675]
System.out.println(Arrays.asList(a2));//打印结果为[ad, ff, ee]
打印结果为什么是这样的?返回的集合元素不应该是原数组中的元素吗?
作者:
xlunaer
时间:
2015-4-10 18:40
本帖最后由 xlunaer 于 2015-4-10 19:30 编辑
public static <T> List<T> asList(T... a) 这是asList方法的定义,可以看出它接收的是一个类的对象,返回的是泛型集合,int是基本类型,所以1,2,3不是对象,但是a1是一个数组对象,所以asList把a1当作参数处理了,而不是1,2,3
它返回的是调用a1 toString方法返回的类名+hash值
作者:
殷俊
时间:
2015-4-10 18:43
集合中的是对象,string类型的数组,里面的元素就是对象,成为集合后,就直接打印出数组里的元素了,而int类型的数组,里面的只是元素,成为集合后,打印的是数组对象的地址
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2