Java8中引入了三个原始类型特化流,分别是IntStream、DoubleStream和LongStream。map方法只能为流中的每个元素返回另一个int,mapToObj这个方法返回一个对象值流。如果需要得到类似int数组的话就需要使用mapToObj。
IntStream.rangeClosed(1, 100).boxed()
.flatMap(a ->
IntStream.rangeClosed(a, 100)
.filter(b -> Math.sqrt(a * a + b * b) % 1 == 0)
.mapToObj(b -> new int[]{a, b, (int) Math.sqrt(a * a + b * b)})
);
例子中想得到的是int[],使用map的话就会报错—Bad return type in lambda expression: int[] cannot be converted to int
Java8中Map和mapToObj的区别?
最新推荐文章于 2024-08-20 18:42:09 发布
本文深入探讨Java8中新增的原始类型特化流IntStream、DoubleStream和LongStream的使用方法,重点讲解如何利用这些流进行高效的数据处理,特别是mapToObj方法在转换流元素时的应用场景。
摘要由CSDN通过智能技术生成