基于日期(每小时)的对象组列表

sri*_*nth 2 java arraylist java-8

我有一个列表Objectsjava.util.date字段为一体.如何Objects根据日期(每小时)分离/过滤.即例如:Objects日期范围从12.00到13:00应分开或形成新列表,依此类推每小时.帮助我实现这一目标.

War*_*ard 5

您可以流式传输原始对象列表,然后使用groupingBy收集器.

这将为您提供Map键为小时的位置,值为该小时的对象列表.

List<MyObject> objects = new ArrayList<>();

Map<Integer, List<MyObject>> objectsPerHour = objects.stream()
        .collect(Collectors.groupingBy(MyObject::getHour));
Run Code Online (Sandbox Code Playgroud)

我假设了这样的实现MyObject(你可以getHour()像你想的那样实现):

class MyObject {

    private Date date;

    public int getHour() {
        return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).getHour();
    }
}
Run Code Online (Sandbox Code Playgroud)