一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate

 

liuyuhang原创,未经允许禁止转载

本文举例使用的是JDK8的API

 

目录:一点一点看JDK源码(〇)

 

Predicate为jdk1.8新增接口,由ArrayList.removeIf(Predicatep)调用。

使用起来也比较方便,从ArrayList中移除Predicate 中test方法的返回值(boolean)来确定是否删除,

示例代码如下:

 

 1 package com.FM.ArrayListStudy;
 2 
 3 import java.util.ArrayList;
 4 import java.util.function.Predicate;
 5 
 6 public class RemoveIfInArrayListStudy {
 7     public static void main(String[] args) {
 8         ArrayList<Integer> list = new ArrayList<Integer>();
 9         for (int i = 0; i < 20; i++) {
10             list.add(i + 1);
11         }
12         System.out.println(list);
13         list.removeIf(new Predicate<Integer>() {
14 
15             @Override
16             public boolean test(Integer t) {
17                 if (t % 2 == 1) {
18                     return true;
19                 } else {
20                     return false;
21                 }
22             }
23         });
24         System.out.println(list);
25     }
26 }

 

运行结果如下:

 

比较简单,不多废话

 

以上!