interface Collection<E> extends Iterable<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
default
<T> T[] toArray(IntFunction<T[]> generator) {
return
toArray(generator.apply(0));
}
boolean add(E e);
boolean remove(Object o);
boolean containsAll(java.util.Collection<?> c);
boolean addAll(java.util.Collection<? extends E> c);
boolean removeAll(java.util.Collection<?> c);
default
boolean removeIf(Predicate<?
super
E> filter) {
Objects.requireNonNull(filter);
boolean removed =
false
;
final Iterator<E> each = iterator();
while
(each.hasNext()) {
if
(filter.test(each.next())) {
each.remove();
removed =
true
;
}
}
return
removed;
}
boolean retainAll(java.util.Collection<?> c);
void clear();
boolean equals(Object o);
int hashCode();
@Override
default
Spliterator<E> spliterator() {
return
Spliterators.spliterator(
this
, 0);
}
default
Stream<E> stream() {
return
StreamSupport.stream(spliterator(),
false
);
}
default
Stream<E> parallelStream() {
return
StreamSupport.stream(spliterator(),
true
);
}
}