A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 明光照 中级黑马   /  2012-9-24 20:13  /  1775 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


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()方法,却打印出了集合中的元素。为什么是这样?

7 个回复

倒序浏览
ArrayList他说数组类型list所以不要迭代 可以直接输出 你可以看看api
回复 使用道具 举报
尤圣回 发表于 2012-9-24 20:15
ArrayList他说数组类型list所以不要迭代 可以直接输出 你可以看看api

哦。那这个toString()是在哪儿重写的
回复 使用道具 举报
明光照 发表于 2012-9-24 20:22
哦。那这个toString()是在哪儿重写的

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

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

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

接着AbstractCollection又继承自Object,

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

哦。明白了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马