目錄
Collection
1. 介紹
該類是所有集合的子類
2. 繼承關係
3. 方法
4. JDK8新增的方法
removeIf(Predicate<? super E> filter)
使用lambda方式移除元素
default boolean removeIf(Predicate<? super E> filter) {
//校驗lambda是否為空
Objects.requireNonNull(filter);
boolean removed = false;
//獲取迭代器
final Iterator<E> each = iterator();
//迴圈判斷
while (each.hasNext()) {
//如果該方法執行返回true則移除該元素
if (filter.test(each.next())) {
each.remove();
removed = true;
}
}
//返回是否成功移除
return removed;
}
Spliterator<E> spliterator()
返回併發分割器,用於併發流式處理的時候呼叫
@Override
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, 0);
}
Stream<E> stream()
返回流物件
default Stream<E> stream() {
return StreamSupport.stream(spliterator(), false);
}
Stream<E> parallelStream()
返回併發流式物件
default Stream<E> parallelStream() {
return StreamSupport.stream(spliterator(), true);
}
5. 總結
- 在Collection中定義了一些常用的介面,供子類去實現
- 在JDK1.8中新增了一些方法,例如獲取獲取流式函式的方法
- 在這個介面中引入了default方法