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)
}
...有多少人参加
如果要基于在personlist
中搜索最大日期来设置每个组中的最大日期,则可以先使用reducing
方法创建一个Map<String, Optional<Date>>
实例,然后在其中进行设置,您存储每个组的最大日期: