Java基础_集合的toString()方法

Posted nwxayyf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础_集合的toString()方法相关的知识,希望对你有一定的参考价值。


集合对象中的toString()方法

1.代码:
public class Test {
public static void main(String[] args) {
Collection<String> c=new ArrayList<String>();
c.add("hello");
c.add("world");
c.add("java");
System.out.println(c);
}
}
//输出结果:
[hello, world, java]

2.问题:为什么直接输出的结果不是地址值呢?
其实Collection<String> c=new ArrayList<String>();这是多态,输出的是c的toString()方法,其实输出的是ArrayList的toString()

那么我们就去查看一下ArrayList的toString()方法,但是我们没有在ArrayList里面找到相关的toString()方法,那么我们去其父类里面找
,我们发现是有的。

3.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(‘ ‘);
}
}
//有上面的代码,我们可见toString()方法的是指2就是属于字符串的拼接,然后再遍历的情况下获取数组调用toString()方法输出。

 




































以上是关于Java基础_集合的toString()方法的主要内容,如果未能解决你的问题,请参考以下文章

java基础-toString(方法)

Java基础_Set集合

Java基础_List集合

阶段1 语言基础+高级_1-3-Java语言高级_04-集合_07 Collections工具类_1_Collections集合工具类的方法

java面向对象_接口

js基础_往原型对象中添加自己的toString方法