很多时候,我们要对集合中的数据进行筛选,只保留符合我们条件的元素,
一般我们是通过for循环去遍历list ,然后在循环里面删除不符合条件的元素
或者是新增一个集合,然后在循环里面添加符合条件的元素
这些方法都是可以的,但是不够简便,需要我们自己写挺多逻辑
这里有一个偷懒的做法,
jdk 1.8 的集合类中有一个叫 removeIf ()的方法,只需要传入移除元素的条件判断逻辑即可完成元素移除操作
一行代码即可解决
这个方法源码如下,原理还是利用迭代器去删除元素的,返回值是被删除的元素
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;
}