【发布时间】:2016-05-04 23:33:57
【问题描述】:
我正在尝试使用IntStream 来实例化对象流:
Stream<MyObject> myObjects =
IntStream
.range(0, count)
.map(id -> new MyObject(id));
但它说它无法将MyObject 转换为int。
【问题讨论】:
标签: java lambda java-8 java-stream
我正在尝试使用IntStream 来实例化对象流:
Stream<MyObject> myObjects =
IntStream
.range(0, count)
.map(id -> new MyObject(id));
但它说它无法将MyObject 转换为int。
【问题讨论】:
标签: java lambda java-8 java-stream
IntStream class's map method 将 ints 映射到更多 ints,使用 IntUnaryOperator(int 到 int),而不是对象。
一般来说,所有流的map方法都将流的类型映射到自身,mapToXyz映射到不同的类型。
改用mapToObj method,它接受IntFunction(int 反对)。
.mapToObj(id -> new MyObject(id));
【讨论】:
.mapToObj(MyObject::new)...
Stream stream2 = intStream.mapToObj( i -> new ClassName(i));
这会将intstream转换为指定对象类型的Stream,mapToObj接受一个函数。
有intStream.boxed()方法可以直接将intStream转换成Stream<Integer>
【讨论】: