The Collection Interface
The Collection Interface
- A Collection represents a group of objects known as its elements.
- The Collection interface is used to pass around collections of objects where maximum generality is desired.
- The Collection interface contains methods that perform basic operations, such as int size(), boolean isEmpty(), boolean contains(Object element), boolean add(E element), boolean remove(Object element), and Iterator<E> iterator() .
- It also contains methods that operate on entire collections, such as boolean containsAll(Collection<?> c), boolean addAll(Collection<? extends E> c), boolean removeAll(Collection<?> c), boolean retainAll(Collection<?> c), and void clear().
- Additional methods for array operations (such as Object[] toArray() and <T> T[] toArray(T[] a) exist as well.
Traversing Collections
//In JDK 8 and later, the preferred method of iterating over a collection is
//to obtain a stream and perform aggregate operations on it.
//Aggregate operations are often used in conjunction with lambda expressions
//to make programming more expressive, using less lines of code:
myShapesCollection.stream()
.filter(e -> e.getColor() == Color.RED)
.forEach(e -> System.out.println(e.getName())); // The for-each construct allows you to concisely traverse a collection or array
//using a for loop:
for (Object o : collection)
System.out.println(o); //The following method shows you how to use an Iterator to filter
//an arbitrary Collection:
static void filter(Collection<?> c) {
for (Iterator<?> it = c.iterator(); it.hasNext(); )
if (!cond(it.next()))
it.remove();
} There are three ways to traverse collections: (1) using aggregate operations (2) with the for-each construct and (3) by using Iterators.
Semantic portal