javacollections

Java Iterator: What does it mean :java.util.ArrayList$Itr


There is code :

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

I get :

 java.util.ArrayList$Itr

What does it mean: "ArrayList$Itr" ?

What implementation of Iterator i get in this line ?

Iterator iterator = al.iterator(); 

Solution

  • Inside the ArrayList class, the following inner class is defined:

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

    al.iterator() returns an instance of that class, whose full name is java.util.ArrayList$Itr.

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