ArrayList的toString()方法,arraylisttostring
ArrayList的toString()方法,arraylisttostring
这个小程序中为什么输出[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 AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable 中找到 AbstractList ,从这个类的声明public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>中找到AbstractCollection ,就在AbstractCollection中重写的toString方法,打开源码可以看到
public String toString() {
Iterator<E> i = iterator();
if (! i.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = i.next();
sb.append(e == this ? "(this Collection)" : e);
if (! i.hasNext())
return sb.append(']').toString();
sb.append(", ");
}
}
相关文章
- 暂无相关文章
用户点评