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

har*_*814 1 java collections

有代码:

List<Integer> al = new ArrayList<>() ;
Iterator iterator = al.iterator();
System.out.println(iterator.getClass().getName());
Run Code Online (Sandbox Code Playgroud)

我得到:

 java.util.ArrayList$Itr
Run Code Online (Sandbox Code Playgroud)

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

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

Iterator iterator = al.iterator(); 
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 7

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

private class Itr implements Iterator<E> {...}
Run Code Online (Sandbox Code Playgroud)

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

public Iterator<E> iterator() {
    return new Itr();
}
Run Code Online (Sandbox Code Playgroud)