简单测试Stream的执行效率
对一个String集合中数据进行转大写操作,用for循环100000次,下面是使用不同方式的执行效率
| Stream 的方法引用 | Stream 的lambda函数 | foreach循环 |
|---|---|---|
| 3011 | 2325 | 3369 |
| 3417 | 3573 | 3526 |
| 2450 | 3136 | 2293 |
| 3728 | 4930 | 2823 |
| 3416 | 2684 | 5070 |
| 3229 | 3174 | 2668 |
| 3089 | 3900 | 3120 |
| 2496 | 1785 | 3182 |
| 2964 | 3637 | 3925 |
| 3245 | 3120 | 3529 |
对数据最大差异值进行排除后计算平均
| Stream 的map中使用方法引用 | Stream 的map中使用lambda函数 | foreach循环 |
|---|---|---|
| 3109.375 | 2903.625 | 2846.625 |
可以看到,使用Stream串行流和for循环的执行效率相差不大,因此用Stream替换for循环是可行的,并且可以大大节省编码时间。
———————————————————————————
后来我又测试了boolean类型和int类型,发现for循环确实比Stream快得多。笔者认为,使用基本数据类型时大概for循环比Stream串行流快,但是在引用类型上for循环和Stream相差不多,甚至有时Stream比for略快。
by:Mädchen und Katzen
本文通过测试String集合中数据转大写的执行效率,对比了使用Stream和for循环的不同方式。结果显示,在引用类型上两者效率相近,但在基本数据类型上for循环更优。测试涵盖了方法引用、lambda函数及foreach循环,提供了详细的执行时间数据。
2431

被折叠的 条评论
为什么被折叠?



