当前位置: 代码迷 >> J2SE >> 有关ArrayList集合迭代的有关问题
  详细解决方案

有关ArrayList集合迭代的有关问题

热度:34   发布时间:2016-04-23 20:12:53.0
有关ArrayList集合迭代的问题
代码如下:
ArrayList list = new ArrayList();
list.add("AA");
list.add("BB");
Iterator it = list.iterator();
while(it.hasNext()) {
      Object obj = it.next();
       System.out.println(obj.toString()); 
}
输出结果为AA  BB

it.next()返回类型是Object,在调用toString方法输出的结果不应该是哈希值吗?为什么输出的是字符串???
------解决思路----------------------
lz没能理解面向对象的继承,首先你往list中放的是字符串,然后你取的时候,用Object类型变量去接,即
Object obj = it.next();
一般的话如果list中放的对象不是你用来接的那个类的子类或实现类 会出现编译错误的,这里没报错是因为java中Object类是所有类的父类。有的子类重写了父类的toString方法,所以没有输出hashcode。如果你想知道某个类的toString返回的值,你可以看该类源代码或api文档,并不是所有类都会返回hashCode,比如ArrayList。
  相关解决方案