ArrayList的toString()⽅法
这个⼩程序中为什么输出[100,200]呢
import java.util.ArrayList;
import java.util.List;
public class Hello {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(100);
list.add(200);
System.out.println(list);
}
}
了半天toString⽅法原来在AbstractCollection类中重写的 , 从ArrayList类的声明public class ArrayList<E> extends <E> implements <E>, , , 中到 ,从这个类的声明public abstract class AbstractList<E> extends <E> implements <E>中到 ,就在中重写的toString⽅法,打开源码可以看到
public String toString() {
Iterator<E> i = iterator();
if (! i.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
java的tostring方法
E e = i.next();
sb.append(e == this ? "(this Collection)" : e);
if (! i.hasNext())
return sb.append(']').toString();
sb.append(", ");
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论