A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

   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]
打印结果为什么是这样的?返回的集合元素不应该是原数组中的元素吗?

2 个回复

倒序浏览
本帖最后由 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值
回复 使用道具 举报
集合中的是对象,string类型的数组,里面的元素就是对象,成为集合后,就直接打印出数组里的元素了,而int类型的数组,里面的只是元素,成为集合后,打印的是数组对象的地址
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马