JAVA集合问题

JAVA的集合并没有重写Object的toString方法,为什么可以直接用syso打印ArrayListal=newArrayList();al.add("a");al... JAVA的集合并没有重写Object的toString方法,为什么可以直接用syso打印
ArrayList al=new ArrayList();
al.add("a");
al.add("b");
al.add("c");
al.add("d");
System.out.println(al)

------------------------------------------
[a,b,c,d]

toString方法不是打印类名加地址值吗
展开
 我来答
圣斗士小强
2014-12-28 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:76.3万
展开全部

确实重写了toString()方法,你可以查看一下AbstractCollection.java的源码:

AbstractCollection是Collection的父类

追问
谢谢我看到了   Collection里面有size,isEmpty,contains方法  List里面也有  List不是Collection的子接口吗   这样是不是多此一举
追答
这是java设计的问题,一开始人家就是这么设计的。人家这样设计也是为了写更多的集合接口和类。
你使用时可以灵活一些,可以使用List list=new ArrayList(); 也可以使用ArrayList list=new ArrayList(); 都没问题!
对了,上一个回答说错了,应该是:AbstractCollection是Collection接口的子类。
百度网友9308069
2014-12-28 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1944万
展开全部
List,ArrayList这类JCL集合库的工具都自带toString(),就是说有自己的字符串表示形式。
不同于未定义Object,默认才显示类名加地址值。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我的太阳44
2014-12-28 · TA获得超过294个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:93万
展开全部
tostring()已被覆写了
public String toString() {
Iterator<E> it = iterator();
if (! it.hasNext())
return "[]";

StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next();
sb.append(e == this ? "(this Collection)" : e);
if (! it.hasNext())
return sb.append(']').toString();
sb.append(',').append(' ');
}
}

}
追问
谢谢我看到了   Collection里面有size,isEmpty,contains方法  List里面也有  List不是Collection的子接口吗   这样是不是多此一举
谢谢我看到了   Collection里面有size,isEmpty,contains方法  List里面也有  List不是Collection的子接口吗   这样是不是多此一举
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上校团长岳振飞
2014-12-28
知道答主
回答量:81
采纳率:0%
帮助的人:7.7万
展开全部
不太懂。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式