I am reading through collections to see hierarchy of implementations from Javadocs.

`Collections` is declared as `public class Collections extendds Object`

`Collection<E>` is declared as `public interface Collection<E> extends Iterable<E>`

`AbstractCollection` is declared as `public abstract class AbstractCollection<E> implements Collection<E>`

`AbstractList` is declared as `public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>`

my questions are
1) Is there any connections between `Collections and Collection`. I do not see anything `extending Collections Class`?

2) what is the need for `AbstractList` class, since the methods implemented in `AbstractList` class such as `listIterator` could as well be abstracted in `List Interface` and the implementing class could as well implement such methods?