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

2021-07-15 13:08

阅读:345

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


集合对象中的toString()方法

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

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

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

3.toString()方法源码
public String toString(){
//集合本身调用迭代器方法,得到迭代器集合
Iterator 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


评论


亲,登录后才可以留言!