作者eieio (好多目标)
看板java
标题Re: Lambda 和Streams 可以慢5倍
时间Thu Dec 3 03:52:22 2015
※ 引述《Lordaeron (Terry)》之铭言:
: http://tinyurl.com/ndw5g39
: 这个看起来很惨!!
: 但
: http://tinyurl.com/ne83u8f
: 这个看起来, 又很好呢.
标题太误导人了。我两边都仔细看了,stream 或 parallelStream 应该是较
佳的写法。慢五倍的关键并不是 stream,而是 boxing/unboxing
integers.stream().reduce(...)
integers.stream().mapToInt(Integer::intValue).reduce(...)
上面两个写法,有先 mapToInt 就可以避免掉过多的 boxing/unboxing,速度
跟 for loop 差不多。
同样的道理,下面这段 code 很不好:
String r = "";
for (String s : strs) {
r = r + s;
}
上面这段 code,每次 r = r + s 就会产生一个新的 String,效能会很低。
要避免产生无用的 String,要用 StringBuilder。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 131.107.174.119
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1449085945.A.3B0.html
1F:→ longlongint: 不可修改内容的物件都要注意 12/03 06:02
2F:→ eieio: good point 12/03 08:52
3F:→ Lordaeron: 你要不要回文反驳一下? 做数据出来反驳? 12/03 11:27
4F:→ eieio: 原文就有人提了,数据早更新了,你自己标题杀人怪我? 12/06 09:36