黑马程序员技术交流社区

标题: 关于集合和数组,打印结果的不同 [打印本页]

作者: 疯狂的麦克斯    时间: 2016-9-20 00:17
标题: 关于集合和数组,打印结果的不同
               Collection<String> coll = new ArrayList<String>();
                coll.add("asd1");
                coll.add("asd2");
                coll.add("asd3");
                System.out.println(coll);                    //[asd1, asd2, asd3]        ????????为什么集合打印的结果是这个
                System.out.println("------------------");
                int[] arr = {1,2,3,5,6,7,8,9};
                System.out.println(arr);                    //[I@67064
                System.out.println(Arrays.toString(arr));   //[1, 2, 3, 5, 6, 7, 8, 9]


作者: 332597171    时间: 2016-9-20 09:26
没看到你的方法 只知道后面是打印地址值和打印所有元素
作者: Jarc    时间: 2016-9-20 10:14
你直接打印数组只是打印了它的地址值
作者: 疯狂的麦克斯    时间: 2016-9-20 23:02
332597171 发表于 2016-9-20 09:26
没看到你的方法 只知道后面是打印地址值和打印所有元素

这就是所有代码了啊,我是不明白打印集合的结果,不过现在明白了
作者: bahamut322    时间: 2016-9-20 23:40
数组是个引用
作者: zbwzwd    时间: 2016-9-20 23:55
本帖最后由 zbwzwd 于 2016-9-21 00:03 编辑

ArrayList的父类AbstractList的父类AbstractCollection里面有实现toString(),所以直接打印;数组没有重写,而其工具类arrays内部重写了,所以直接调用,也就能打印出来了
作者: dmyz3214382    时间: 2016-9-21 00:17
ArrayList重写了toString(),arr没有重写toString()
作者: 疯狂的麦克斯    时间: 2016-9-21 00:39
zbwzwd 发表于 2016-9-20 23:55
ArrayList的父类AbstractList的父类AbstractCollection里面有实现toString(),所以直接打印;数组没有重写 ...

是的是的
作者: 疯狂的麦克斯    时间: 2016-9-21 00:40
dmyz3214382 发表于 2016-9-21 00:17
ArrayList重写了toString(),arr没有重写toString()

恩恩,知道了
作者: 疯狂的麦克斯    时间: 2016-9-21 00:41
bahamut322 发表于 2016-9-20 23:40
数组是个引用

恩恩,懂了
作者: 读书可以当饭吃    时间: 2016-9-21 10:57
集合里面重写了toString方法,直接打印集合其实就是调用了toString方法,打印出这个格式
作者: litianji2016    时间: 2016-9-21 11:15
这是啥???
作者: Toxicant    时间: 2016-9-21 16:30
数组打印的是地址值,定义的时候赋值给的变量名就是一个地址值所以打印的就是一个地址值,集合有自己的tostring方法
作者: 疯狂的麦克斯    时间: 2016-9-21 22:44
litianji2016 发表于 2016-9-21 11:15
这是啥???

收到收到




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2