removeIf

2021-01-19

java

礼貌是最容易做到的事,也是最珍贵的东西。—— 冈察尔

Java中我们可能使用StreamfilterList去过滤一些数据

但如果我们想要更高的效率,或者我们修改源数据,就需要用到Listremoveif

下面是一个简单的测试

1
2
3
4
5
6
7
8
9
10
// 生成从0到20的数字,过滤掉奇数
List<Integer> intList = Stream.iterate(0, e -> ++e).limit(20).collect(Collectors.toList());
long filterStart = System.nanoTime();
intList.stream().filter(a -> a % 2 == 0).collect(Collectors.toList());
long filterEnd = System.nanoTime();
System.out.println("filter执行了" + ((filterEnd - filterStart) / (1000.0 * 1000.0)) + "ms");
long removeIfStart = System.nanoTime();
intList.removeIf(a -> a % 2 != 0);
long removeIfEnd = System.nanoTime();
System.out.println("removeIfEnd执行了" + ((removeIfEnd - removeIfStart) / (1000.0 * 1000.0)) + "ms");

执行结果

image-20210119202344072