礼貌是最容易做到的事,也是最珍贵的东西。—— 冈察尔
Java
中我们可能使用Stream
的filter
从List
去过滤一些数据
但如果我们想要更高的效率,或者我们修改源数据,就需要用到List
的removeif
了
下面是一个简单的测试
1 2 3 4 5 6 7 8 9 10
| 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");
|
执行结果