Java中使用Stream API的sum()方法的小问题

在Java中,sum()方法是IntStream, LongStream, 和 DoubleStream 类提供的终端操作,用于计算流中所有元素的总和。这些类专门用于处理基本类型的流,而Stream<T>类本身并不包含sum()方法。

也就是说,sum()是专门给数值类型实用的!

  • 对于IntStream, LongStream, 或 DoubleStream,可以直接调用sum()

  • 如果你有Stream<Integer>, 必须需要先将其转换为IntStream

示例代码:
import java.util.stream.IntStream;
import java.util.stream.Stream;
​
public class SumExample {
    public static void main(String[] args) {
        // 创建一个包含Integer的Stream
        Stream<Integer> integerStream = Stream.of(1, 2, 34);
​
        // 将Stream<Integer>转换为IntStream
        IntStream intStream = integerStream.mapToInt(Integer::intValue);
​
        // 使用sum()方法求和
        int total = intStream.sum();
​
        System.out.println("The sum is: " + total);
    }
}
注意事项
  • 在调用如mapToInt这样的中间操作后,原始流integerStream会被消耗掉,这意味着你不能再次在该流上执行其他操作。如果需要多次使用流中的元素,应该创建新的流实例或使用collect收集流到集合中。

  • 确保在调用sum()之前,流中的所有元素都是有效的且可以被转换为所需的基本类型,否则可能会抛出异常。

  • sum()是一个终端操作,意味着它会触发流的执行,并且之后不能在同一个流上执行其他终端操作。如果需要对相同数据执行多个操作,应在不同流实例上执行,或先将数据收集到集合中。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值