调用 maptoint 方法后结果本身就是 intstream,无需额外转换;maptoint 是 stream 的中间操作,接收 tointfunction 并返回 intstream。

调用 mapToInt 方法后,结果本身就是 IntStream,不需要额外转换。
mapToInt 的作用就是返回 IntStream
mapToInt 是 Stream<t></t> 上的一个终端映射操作,它接收一个 ToIntFunction super T>,将每个元素映射为一个 int 值,并直接返回一个新的 IntStream。所以你调用完它,就已经在操作 IntStream 了。
- 例如:
stream.mapToInt(String::length)→ 返回的是IntStream,不是Stream<integer></integer> - 后续可直接链式调用
sum()、average()、max()等IntStream特有方法
常见误用:别用 map 转 int 再 boxed
如果错误地用 map + Integer::intValue 或自动拆箱,会得到 Stream<integer></integer>,这不是 IntStream:
- ❌ 错误:
stream.map(s -> s.length()).mapToInt(Integer::intValue)(多此一举) - ✅ 正确:
stream.mapToInt(String::length)(一步到位)
从其他类型构造 IntStream 的替代方式
如果源头不是 Stream,而是数组或范围,可直接用 IntStream 工厂方法:
-
IntStream.range(0, 10)→ [0, 10) -
IntStream.of(1, 2, 3)→ 显式整数流 -
Arrays.stream(intArray)→ 从int[]创建IntStream
注意:mapToInt 不能用于泛型 Stream 的“转 int”
如果已有 Stream<integer></integer>,直接用 mapToInt(Integer::intValue) 即可:
-
Stream.of(1, 2, 3).mapToInt(Integer::intValue)→ 得到IntStream - 不要写成
.map(i -> i),那还是Stream<integer></integer>
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











