A Collection is a lot of work
boolean add(Object o);
boolean addAll(Collection c);
boolean contains(Object o);
boolean containsAll(Collection c);
boolean equals(Object o);
boolean remove(Object o);
boolean removeAll(Collection c);
boolean retainAll(Collection c);
Object toArray(Object a);
Implementing a new Collection in Java carries what can only be described a degree of overhead. A lot of these methods - toArray for instance - might not even make sense in many cases. There are 15 methods there. In Java an iterator has three methods, and one of those you can ignore.
Other languages have different ideas about what constitutes a collection. Here's .NET.