discussion at link java - Why does ArrayList have "implements List"? - Stack Overflow
doesn't seem any valid reason if this is to increase tracability of the inheritance structure so this can also be
public class ArrayList<E> extends AbstractList<E>
implements List<E>,Collection<E>, RandomAccess, Cloneable, java.io.Serializable
Here I have added Collection<E> extra also.
And also just for sake of tracability I think no one is going to make the the inheritance hierarchy complex.
I think there is some another reason for this. if i check the hashset it's also using the same way as ArrayList
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>
public class HashSet<E>
implements Set<E>, Cloneable, java.io.Serializable