黑马程序员技术交流社区

标题: 集合的问题 [打印本页]

作者: 明光照    时间: 2012-9-24 20:13
标题: 集合的问题

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class Test_15 {
public static void main(String args[]) {
  Integer i = 1;
  int j = 2;
  ArrayList list = new ArrayList();
  list.add(1);
  list.add(2);
  list.add(3);
  // Iterator iterator=list.iterator();
  // while(iterator.hasNext()){
  // System.out.println(iterator.next());
  // }
  System.out.println(list);//打印出了list中的元素

}
} // 并且在ArrayList类的原文件中没有看到toString()方法,本来toString()方法是Object类中的方法,打印出对象在内存中的地址,而现在没有看到重写toString()方法,却打印出了集合中的元素。为什么是这样?


作者: 尤圣回    时间: 2012-9-24 20:15
ArrayList他说数组类型list所以不要迭代 可以直接输出 你可以看看api
作者: 明光照    时间: 2012-9-24 20:22
尤圣回 发表于 2012-9-24 20:15
ArrayList他说数组类型list所以不要迭代 可以直接输出 你可以看看api

哦。那这个toString()是在哪儿重写的
作者: 尤圣回    时间: 2012-9-24 20:34
明光照 发表于 2012-9-24 20:22
哦。那这个toString()是在哪儿重写的

都说底层是数组了 不用重写tostring啊 你打印数组要重写tostring吗
作者: 尤圣回    时间: 2012-9-24 20:35
ArrayList比较重要你多研究一下 以后的android开发这个集合经常用的
作者: 王得新    时间: 2012-9-24 20:39
本帖最后由 王得新 于 2012-9-24 20:42 编辑

ArrayList继承自AbstractList(强调下,ArrayList是继承了AbstractList,实现了List,RandonAccess等接口),

而AbstractList又继承自AbstractCollection(在这里AbstractCollection已经覆盖了父类Object的toString方法了),

接着AbstractCollection又继承自Object,

所以ArrayList中就有toString的方法了

作者: 明光照    时间: 2012-9-24 20:44
list调用toString()方法也是这个效果。System.out.println(list.toString());//[1, 2, 3]
它的底层我不知道是什么样的。但list是一个对象,没有重写的话,打印应该是它的内存中的地址。
作者: 明光照    时间: 2012-9-24 20:46
王得新 发表于 2012-9-24 20:39
ArrayList继承自AbstractList(强调下,ArrayList是继承了AbstractList,实现了List,RandonAccess等接口), ...

哦。明白了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2