BigDecimal maxDataFlowVO = nightFlowList.stream()
                .filter(o -> o.getNightFlow().compareTo(BigDecimal.ZERO) == 1)
                .map(LeakageChildVO::getNightFlow).distinct().min(BigDecimal::compareTo).get();
        //下面有两种写法 推荐使用方法一
        //代码解释: 将timeList流首先过滤时间不为空的,将需要比较的值转出map然后去重,最后取出最大值/最小值
        //方法一 min(DateUtils::compareDate)  这种写法需要自己写工具类,且compareDate必须是static修饰
        Date min = timeList.stream().filter(o -> o.getTime() != null).map(TimeTest::getTime).distinct().min(DateUtils::compareDate).get();
        //方法二 max((e1, e2) -> e1.compareTo(e2))这种写法需要类里面含有比较方法
        Date max = timeList.stream().filter(o -> o.getTime() != null).map(TimeTest::getTime).distinct().max((e1, e2) -> e1.compareTo(e2)).get();
                    java8 stream取出 最大值/最小值提示:以下是本篇文章正文内容,下面案例可供参考1.代码示例代码如下(示例):public static void main(String[] args) { BigDecimal maxDataFlowVO = nightFlowList.stream()                .filter(o -> o.getNightFlow().compareTo(BigDecimal.ZERO) == 1)        .
				
BigDecimal sum_price = list.stream().map(User::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add); System.out.println(sum_price); Optional<User> max = list.stream().max(Comparator.comparing(User::getSex)); Optional<User> min = list....
java使用jdk8的Stream来获取list集合的最小值最大值、总和、平均数 User 实体类 package com.example.listdemo.entity; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; * @author qzz @Data public class User {
Stream中常用的方法Steam的优势常用方法Filter 过滤Map方法Limit限制返回个数Distinct 去重操作skip 删除之前的元素min 最小值 Steam的优势 在项目中经常用到集合,遍历集合lambda表达式,要对集合进行过滤和排序,Stream就派上用场了。Stream作为java1.8的新特性,基于lambda表达式,它专注于对集合对象进行各种高效、可以让你从常用的if、else、for里面跳来。提高了编程效率和代码可读性。 Filter 过滤 一条数据过滤 import com.alibaba.fastjson.annotation.JSONField; import lombok.Builder; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @Data @Builder class Person { private String name; private
public static void main(String[] args) { // 创建一个包含时间的列表 List<LocalTime> times = new ArrayList<>(); times.add(LocalTime.of(9, 0, 0)); times.add(LocalTime.of(10, 30, 0)); times.add(LocalTime.of(12, 15, 0)); times.add(LocalTime.of(8, 45, 0)); // 使用流找到最大时间 LocalTime maxTime = times.stream() .max(LocalTime::compareTo) .orElse(LocalTime.MIN); System.out.println("最大时间是:" + maxTime); 在上述代码中,我们创建了一个包含 `LocalTime` 对象的列表 `times`,并使用流的 `max` 操作来找到最大时间。`LocalTime::compareTo` 方法用于比较两个时间的大小。如果列表为空,我们使用 `orElse` 方法来指定一个默认值(这里使用 `LocalTime.MIN`)。 请注意,这里的 `LocalTime` 类是 Java 8 中的日期时间 API 的一部分。如果你使用的是其他编程语言或框架,可能需要使用相应的日期时间类来实现类似的功能。