码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-26 11:59:14      阅读:445      评论:0      收藏:0      [点我收藏+]

标签:lis   情况下   build   out   循环   死循环   代码   uil   public   


集合对象中的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()方法

标签:lis   情况下   build   out   循环   死循环   代码   uil   public   

原文地址:https://www.cnblogs.com/nwxayyf/p/9536533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!