Java8list中的Groupby和MaxDate并插入每个组并设置maxdate

问题描述 投票:-1回答:1
   Map<groupname,Optional<Person>> test= Personlist.streams.collect(Collectors.groupingBy(x -> x.getgroup(), 
        Collectors.maxBy(Comparator.comparing(x -> x.getCreateDate()))));

使用上述条件后,我能够进行迭代并找到最大记录,此后,我需要根据上面获取的最大日期对每个组进行迭代和设置值

样本记录

group 1, 1/1/2020
group 1, 1/2/2020
group 1, 1/3/2020
group 2, 1/1/2020
group 2, 2/1/2020
group 2, 3/1/2020

例外的输出:(我有恒定的组)1.如果第1组存在,则设置第1组最大创建日期= 1/3/2020,否则为null2.如果存在第2组,则设置第2组的最大创建日期= 3/1/2020,否则为null3.如果第3组存在,则设置第3组最大创建日期= null(因为不存在)'

if ( group 1 exist) { setgroup1createdate(maxcreatedate) } else setgroup1createdate(null) }

...有多少人参加

java
1个回答
0
投票

如果要基于在personlist中搜索最大日期来设置每个组中的最大日期,则可以先使用reducing方法创建一个Map<String, Optional<Date>>实例,然后在其中进行设置,您存储每个组的最大日期:

© www.soinside.com 2019 - 2024. All rights reserved.