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方法不是打印类名加地址值吗 展开
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方法不是打印类名加地址值吗 展开
4个回答
追问
谢谢我看到了 Collection里面有size,isEmpty,contains方法 List里面也有 List不是Collection的子接口吗 这样是不是多此一举
追答
这是java设计的问题,一开始人家就是这么设计的。人家这样设计也是为了写更多的集合接口和类。
你使用时可以灵活一些,可以使用List list=new ArrayList(); 也可以使用ArrayList list=new ArrayList(); 都没问题!
对了,上一个回答说错了,应该是:AbstractCollection是Collection接口的子类。
展开全部
List,ArrayList这类JCL集合库的工具都自带toString(),就是说有自己的字符串表示形式。
不同于未定义Object,默认才显示类名加地址值。
不同于未定义Object,默认才显示类名加地址值。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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(' ');
}
}
}
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的子接口吗 这样是不是多此一举
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询