我最近开始学习Java-8流。我正在寻找一个庞大的代码库,并试图找出在哪里可以使用流来提高性能。
从我的理解,用流替换每个循环没有意义,因为流并不总是优于循环。以下几个案例我认为是有益的:
while(iterate over a collection) { if(certain condition is met) { //do some computation } else { //do nothing } }
在这里使用流可以避免在这里加载集合中不必要的成员。 (速度更快,内存效率更高)
如果我错了,请纠正我。我正在寻找更多此类案件......
答案 0 :(得分:15)
回到代码库并手工重写事情可能浪费时间。一般来说,除非您通过非常大的计算使用并行流,否则流不会提供性能优势(有关详细建议,请参阅http://gee.cs.oswego.edu/dl/html/StreamParallelGuidance.html)。大多数情况下,流将具有相同的性能;他们写的时间会更短。