Chapter 12. The Collection Interface
The interface Collection (see Figure 12-1) defines the core functionality that we expect of
any collection other than a map. It provides methods in four
groups.
Adding Elements
boolean add(E e) // add the element e boolean addAll(Collection<? extends E> c) // add the contents of c
The boolean result returned by these methods indicates whether the
collection was changed by the call. It can be false for collections, such as
sets, which will be unchanged if they are asked to add an element that is
already present. But the method contracts specify that the elements being
added must be present after execution so, if the collection refuses an
element for any other reason (for example, some collections don’t permit
null elements), these methods must throw
an exception.

The signatures of these methods show that, as you might expect, you can add elements or element collections only of the parametric type.
Removing Elements
boolean remove(Object o) // remove the element o void clear() // remove all elements boolean removeAll(Collection<?> c) // remove the elements in c boolean retainAll(Collection<?> c) // remove the elements *not* in c
If the element 0 is null, remove
removes a null from the collection if one is present. Otherwise, if an element
e is present for which 0.equals(e), it removes it. If not, it leaves the
collection unchanged. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access