Java 按天、周或年对元素流进行分组

Java 按天、周或年对元素流进行分组,java,java-stream,grouping,Java,Java Stream,Grouping,我试图找到一种方法,将一系列元素按天、周或年进行分组 我有这个实体: element { id date(ZonedDateTime) } 所以也许我可以这样做: elemets.stream() .collect(Collectors.groupingBy(t -> t.getDate().with(TemporalAdjusters.ofDateAdjuster('group by day, week or month'))); 这可能吗 谢谢 我不完全确定这

我试图找到一种方法,将一系列元素按天、周或年进行分组

我有这个实体:

element {
 id 
 date(ZonedDateTime)
}
所以也许我可以这样做:

elemets.stream()
        .collect(Collectors.groupingBy(t -> t.getDate().with(TemporalAdjusters.ofDateAdjuster('group by day, week or month')));
这可能吗


谢谢

我不完全确定这是否是您所需要的,但似乎是一种将您想要分组的值作为您所追求的值的方法:

private static Map<Integer, List<Element>> group(
        Collection<Element> elements, 
        ChronoField chronoField) {
    return elements.stream().collect(Collectors.groupingBy(
                 x -> x.getDateTime().get(chronoField)));
}

你说的日、周或年是什么意思?想举个例子吗?@Eugene elements在同一天,同一周。。。那么,是按照他们自己的日期、日期、星期还是月份进行分组呢?这还不清楚,所以你想先按天分组,然后按周分组,依此类推?例如,
Monday=[一些条目,其中周一是一天]
32=[一些条目,在第32周]
?抱歉@Eugene不太清楚,只是按天| |周| | |摸索蒙蒂明白这一点,但我仍然不明白分组是如何工作的。这就是为什么我说提供一个小例子来说明你的确切意思我会查一下尤金,谢谢你的时间。
group(elements, ChronoField.DAY_OF_WEEK);
group(elements, ChronoField.ALIGNED_WEEK_OF_YEAR);
group(elements, ChronoField.YEAR);