礼貌是最容易做到的事,也是最珍贵的东西。—— 冈察尔
Java
中我们可能使用Stream
的filter
从List
去过滤一些数据
但如果我们想要更高的效率,或者我们修改源数据,就需要用到List
的removeif
了
下面是一个简单的测试
代码语言:javascript复制// 生成从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");
执行结果