打印容器对象的问题

isk_java 2008-04-03 01:15:26
import java.util.*;

public class BasicContainer {

public static void main(String[] args) {
Collection c = new ArrayList();
c.add("hello");
c.add(new Integer(100));

System.out.println(c);
}

}

输出结果:[hello, 100]
我想问一下,打印时调用c.toString()方法,容器有重写到toString()方法吗?API里我找不到,,怎么输出会有中括号[]?
...全文
59 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ganglong99 2008-04-03
  • 打赏
  • 举报
回复
这有什么大惊小怪!!
所有Collection本来就有它自己的toString()!!
chensjmail 2008-04-03
  • 打赏
  • 举报
回复
List类型的对象都是这么toString出来的,
不是直接数组对象的toString方法,而是把List对象的元素循环组合成的字符串,
这个不用看源码都能想到,
我觉得只要知道是哪个对象的toString就行了,为什么是这样的格式没必要在意,如果你真想用这个方法做什么判断,那就重载一下。
胡矣 2008-04-03
  • 打赏
  • 举报
回复
System.out.println(c.toString().substring(1, c.toString().length()-1));
isk_java 2008-04-03
  • 打赏
  • 举报
回复
刚才我查了一下jdk源代码,看到ArrayList继承了AbstractList,AbstractList继承了AbstractCollection,AbstractCollection有重写了toString.有输出[]
晓筱时代 2008-04-03
  • 打赏
  • 举报
回复
ArrayList的toString方法就是调用每一个元素的toString方法,把它们放在[]中,以逗号隔开。
这些其实在API里可以找到的了。
不懂编程 2008-04-03
  • 打赏
  • 举报
回复
是不是当成数组输出了?
chensjmail 2008-04-03
  • 打赏
  • 举报
回复
Collection 是一个接口
你是用
ArrayList来实例化的,
所以toString()方法是在ArrayList类内重写的,api不一定把这些也写出来。
“[,]”ArrayList是在重载toString()时自己加的,就是让人看了更明白有几个元素而以,没有什么特殊意义。
valen_jia 2008-04-03
  • 打赏
  • 举报
回复
object类里有toString()

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧