Java Iterator:它是什么意思:java.util.ArrayList $ Itr

时间:2019-06-26 11:19:19

标签: java collections

有代码:

List<Integer> al = new ArrayList<>() ;
Iterator iterator = al.iterator();
System.out.println(iterator.getClass().getName());

我明白了:

 java.util.ArrayList$Itr

这是什么意思:“ ArrayList $ Itr”?

我在这一行中得到了什么Iterator实现?

Iterator iterator = al.iterator(); 

3 个答案:

答案 0 :(得分:7)

ArrayList类中,定义了以下内部类:

private class Itr implements Iterator<E> {...}

al.iterator()返回该类的实例,其全名是java.util.ArrayList$Itr

public Iterator<E> iterator() {
    return new Itr();
}

答案 1 :(得分:2)

java.util.ArrayListprivate class Itr implements Iterator<E>内定义了内部ArrayList,当您调用list.iterator()方法时会返回该内部{

请参阅java.util.ArrayList的内部实现。

答案 2 :(得分:0)

  

这是什么意思:“ ArrayList $ Itr”?

这意味着ItrArrayList的内部类。

  

我在这一行中得到什么迭代器实现?

您将获得的实现是java.util.ArrayList$Itr。但是您不应该依赖于此特定的实现,因为它不是ArrayList API的一部分,并且可能在Java的未来版本中发生变化。您唯一可以依靠的就是获得Iterator