我正在阅读“
Java 8 Lambdas”这本书,在某些时候,作者说:“尽可能使用原始的专业功能是一个好主意,因为
性能优势“.
性能优势“.
他在这里指的是mapToInt,mapToLong等
事实上,我不知道演员表现来自于诚实.
我们来看一个例子:
// Consider this a very very long list,with a lot of elements List<Integer> list = Arrays.asList(1,2,3,4); //sum it,flavour 1 int sum1 = list.stream().reduce(0,(acc,e) -> acc + e).intValue(); //sum it,flavour 2 int sum2 = list.stream().mapToInt(e -> e).sum(); System.out.println(sum1 + " " + sum2);
因此,在第一种情况下,我使用reduce来计算值,所以BinaryOperator函数将一直收到int(acc)和Integer(集合的当前元素),然后将对Integer进行解包int(acc)
在第二种情况下,我使用mapToInt,它将每个Integer解包成一个int,然后对它进行求和.
我的问题是,第二种方法有什么好处吗?
还有什么地图到int,当我可以使用地图?
那么是的,这只是糖语法,还是具有一定的性能优势?如果是,请提供一些信息
问候,