黑马程序员技术交流社区

标题: 关于关于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