JAVA 使用 Stream 中 Collectors 工具类 基础操作

简介: JAVA 使用 Stream 中 Collectors 工具类 基础操作

JAVA 使用 Stream 中 Collectors 工具类 基础操作

求取最大值、最小值、求和、求平均值

image.png

class A {
    companion object {
        private val list = ArrayList<Test>()
        @RequiresApi(Build.VERSION_CODES.N)
        @JvmStatic
        fun main(args: Array<String>) {
            println("-----------------------------------")
            list.add(Test(120, "语文"))
            list.add(Test(12, "数学"))
            list.add(Test(70, "英语"))
            list.add(Test(92, "化学"))
            list.add(Test(10, "物理"))
            list.add(Test(96, "生物"))
            //求取最大值
            val maxBy = list.stream().collect(Collectors.maxBy(Comparator.comparing(Test::score)))
            //求取最小值
            val minBy = list.stream().collect(Collectors.minBy(Comparator.comparing(Test::score)))
            //平均值 averagingInt\averagingDouble、averagingInt、averagingLong
            val averagingInt = list.stream().collect(Collectors.averagingInt(Test::score))
            println("-maxBy----${maxBy}-minBy-${minBy}---averagingInt-${averagingInt}")
            //summarizingDouble、summarizingInt、summarizingLong  TODO 求得:计数、求平均、求和、最大、最小
            val summarizingInt = list.stream().collect(Collectors.summarizingInt(Test::score))
            println("-summarizingInt--总数--${summarizingInt.count} 总分--${summarizingInt.sum} 平均分--${summarizingInt.average} 最小--${summarizingInt.min} 最大--${summarizingInt.max} ")
        }
    }
    data class Test(var score: Int, val suject: String = "")
}
目录
相关文章
|
16天前
|
安全 Java 大数据
|
18天前
|
SQL 存储 Java
java流式计算Stream
java流式计算Stream
12 0
|
16天前
|
Java Unix Windows
|
1天前
|
Java API
【JAVA进阶篇教学】第三篇:JDK8中Stream API使用
【JAVA进阶篇教学】第三篇:JDK8中Stream API使用
|
5天前
|
存储 算法 安全
Java工具类
Java工具类
27 5
Java工具类
|
9天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【5月更文挑战第1天】本文将介绍Java 8中的两个重要特性:Lambda表达式和Stream API。Lambda表达式是一种新的函数式编程语法,可以简化代码并提高可读性。Stream API是一种用于处理集合的新工具,可以方便地进行数据操作和转换。通过结合Lambda表达式和Stream API,我们可以更加简洁高效地编写Java代码。
|
11天前
|
Java
Java8 Stream Collectors groupingBy使用
Java8 Stream Collectors groupingBy使用
|
14天前
|
Java API 开发者
【专栏】Java 8的Stream API是处理集合数据的新方式,强调简洁和声明式编程
【4月更文挑战第27天】Java 8的Stream API是处理集合数据的新方式,强调简洁和声明式编程。它基于延迟执行和惰性求值,提供创建、中间操作(如filter、map)和终端操作(如forEach、collect)。示例展示了如何通过Stream排序、过滤、映射和聚合数据。
|
15天前
|
Java 编译器 API
Java基础教程(17)-Java8中的lambda表达式和Stream、Optional
【4月更文挑战第17天】Lambda表达式是Java 8引入的函数式编程特性,允许函数作为参数或返回值。它有简洁的语法:`(parameters) -> expression 或 (parameters) ->{ statements; }`。FunctionalInterface注解用于标记单方法接口,可以用Lambda替换。
|
15天前
|
SQL Java
【java高级】stream流的基本用法(一)
【java高级】stream流的基本用法(一)
7 0