Appends all of the elements in the specified collection to the end of
this list, in the order that they are returned by the specified
collection's iterator (optional operation).
The remove method declared by the iterator interface cannot be
overwritten directly, because a concurrent iterator might throw
an InterruptedException.