Collectors.summingLong()

Java 8 流的新类 java.util.stream.Collectors 实现了 java.util.stream.Collector 接口,同时又提供了大量的方法对流 ( stream ) 的元素执行 map and reduce 操作,或者统计操作。

Collectors.summingLong() 方法将流中的所有元素视为 Long类型,并计算所有元素的总和 ( sum )

summingLongExample代码

@Test
public void summingIntExample() {List<Long> list = Arrays.asList(1L, 2L, 3L, 4L);Long max = list.stream().collect(Collectors.summingLong(i -> i));System.out.println(max);
}

summingLongExample结果

10

注意:

  • 定义List中,也就是生成stream流中的参数要进行类型声明,如果不明确类型,里面还要进行强制转换

  • 由于是Long,值的上限是很明显的,如果不控制Sum和的大小,很容易出现值的溢出而导致负数,计算不正确

    • @Test
      public void summingIntExample() {List<Long> list = Arrays.asList(8999999999999999999L, 8999999999999999999L, 8999999999999999999L);Long max = list.stream().collect(Collectors.summingLong(i -> i));System.out.println(max);
      }
      //结果为:8553255926290448381  结果明显不对
      

一点唠叨:

  • 相对于Collectors.averagingDouble()来说,方法体只执行一次。
  • 相对于Collectors.averagingDouble()来说,方法体做出了优化
  • 相对于Collectors.averagingDouble()来说,这个没有坑
  • ……
  • 为什么这么提Collectors.averagingDouble(),最好看一下—> averagingDouble
  • 因为Collectors.averagingDouble()有坑,有坑,有坑

Collectors.summingLong()相关推荐

  1. 用流收集数据Collectors的用法介绍分组groupingBy、分区partitioningBy(一)

    文章目录 一.收集器简介 二.归约和汇总 1.查找流中最大值和最小值Collectors.maxBy和,Collectors.minBy 2.汇总 3.连接字符串 4.广义归约汇总 三.分组 1.多级 ...

  2. collectors 求和_Java-Collectors常用的20个方法

    相思相见知何日?此时此夜难为情. pexels-pixabay-267350.jpg 返回List集合: toList() 用于将元素累积到List集合中.它将创建一个新List集合(不会更改当前集合 ...

  3. Jdk1.8 Collectors类使用详解(实用干货)

    Collectors类大家都并不陌生,从jdk1.8开始跟stream()流配合之后,写代码效率得到提升,源码里我们可以看到有很多的方法,比如groupingBy 和maxBy,这些都是干嘛的呢,这篇 ...

  4. 【Java 8 新特性】Java 8 Collectors示例

    Java 8 Collectors示例 Collectors.averagingDouble Collectors.averagingInt Collectors.averagingLong Coll ...

  5. Java基础系列-Collector和Collectors

    原创文章,转载请标注出处:<Java基础系列-Collector和Collectors> 一.概述 Collector是专门用来作为Stream的collect方法的参数的. public ...

  6. java8之stream流之Collector和Collectors

    Collector Collector是专门用来作为Stream的collect方法的参数的. public interface Stream<T> extends BaseStream& ...

  7. Collector和Collectors

    一.概述 Collector是专门用来作为Stream的collect方法的参数的. public interface Stream<T> extends BaseStream<T, ...

  8. Java8中Collectors的使用

    前言: 基本类型的流没有这个用法 文章目录 averagingDouble,averagingInt,averagingLong collectingAndThen counting grouping ...

  9. Collectors详解

    java8中Collectors的方法: 文章目录 toCollection toList() toSet() toMap joining mapping/flatMapping filtering ...

  10. Java8 Stream之Collectors

    文章目录 toList.toSet toMap toConcurrentMap toCollection joining collectingAndThen groupingBy groupingBy ...

最新文章

  1. markdown编辑器 typora的安装和使用
  2. pip时read time out
  3. java输入月份求天数_java输入年份,月份,输出当月天数
  4. MFC 弹出对话框MessageBox
  5. android 怎么获取app 字体颜色,Android APP使用自定义字体实现方法
  6. 将markdown文本转换为微信文章格式的解决方案
  7. 新基建浪潮下,看边缘计算+5G如何乘风破浪
  8. JavaScript中的[]和{}
  9. mysql innodb_data_file_path_应急预案:专有云V3环境中RDS MySQL5.7实例修改innodb_temp_data_file_path参数的方法...
  10. 如何在android studio中调用mumu模拟器
  11. Scrapy实战:使用IDE工具运行爬虫
  12. 百度搜索关键词的使用方式
  13. 计算机快捷键ctrl记忆,PS篇:有效记忆快捷键
  14. 如何找课题的综述文献
  15. 疫情防控信息管理系统
  16. 【AAAI2021】Dual-Level Collaborative Transformer for Image Captioning
  17. 破译垃圾邮件“变脸”密码完美解决方案(转)
  18. 家校互联:蓝牙短信帮你搞定
  19. 开个水果店要投资多少钱,开水果店投资
  20. 国际标准 ISO 15008

热门文章

  1. python3 Tkinter GUI 试水
  2. PHP之SimpleXML函数
  3. 安装redis3.0.5
  4. MVC之使用Nhibernate
  5. 5.7.2.4 random() 方法
  6. 远程桌面连接的几种方法
  7. dede首页如何调用单页文档内容标签
  8. 不同VLAN间的通信
  9. Linux文件类型与文件权限详解(三)
  10. MVC 实体如何获取子集