You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java Streams中计算整数占比?求1的占比实现方案

解决方案

你可以基于现有流操作,通过计算平均值的方式直接得到目标占比——因为符合条件的元素已被映射为1.0,不符合的为0.0,它们的平均值恰好等于数值1的占比。

完整代码实现如下:

double oneRatio = connections
        .flatMap(co -> co.stops().stream())
        .mapToDouble(ts -> ts.kind() == kind ? 1.0 : 0.0)
        .average()
        .orElse(0.0);

关键细节:

  • 将原map替换为mapToDouble,直接生成DoubleStream,避免不必要的自动装箱开销
  • average()方法返回OptionalDouble,调用orElse(0.0)可优雅处理流为空的边界场景(此时占比默认取0)
  • 整个实现无需暴露任何类的具体类型,完全满足你控制复杂度的需求

内容的提问来源于stack exchange,提问作者Bedirhan Gökce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 07:01:00