import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
class Ideone {
private static final DateTimeFormatter FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static void main
(String[] args
) { new X(LocalDateTime.parse("2022-01-01 01:00:00", FORMATTER)),
new X(LocalDateTime.parse("2022-01-01 01:01:00", FORMATTER)),
new X(LocalDateTime.parse("2022-01-01 02:00:00", FORMATTER)),
new X(LocalDateTime.parse("2022-01-01 03:00:00", FORMATTER)));
Map
<Integer, List
<X
>> map
= list.
stream() .collect(Collectors.groupingBy(x -> x.getT().getHour()));
}
}
class X {
private final LocalDateTime t;
public X(LocalDateTime t) {
this.t = t;
}
public LocalDateTime getT() {
return t;
}
@Override
return "X{t=" + t + '}';
}
}
aW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGVUaW1lOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC5EYXRlVGltZUZvcm1hdHRlcjsKaW1wb3J0IGphdmEudXRpbC5MaXN0OwppbXBvcnQgamF2YS51dGlsLk1hcDsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKCmNsYXNzIElkZW9uZSB7CiAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGF0ZVRpbWVGb3JtYXR0ZXIgRk9STUFUVEVSID0KICAgICAgRGF0ZVRpbWVGb3JtYXR0ZXIub2ZQYXR0ZXJuKCJ5eXl5LU1NLWRkIEhIOm1tOnNzIik7CgogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgIExpc3Q8WD4gbGlzdCA9IExpc3Qub2YoCiAgICAgICAgbmV3IFgoTG9jYWxEYXRlVGltZS5wYXJzZSgiMjAyMi0wMS0wMSAwMTowMDowMCIsIEZPUk1BVFRFUikpLAogICAgICAgIG5ldyBYKExvY2FsRGF0ZVRpbWUucGFyc2UoIjIwMjItMDEtMDEgMDE6MDE6MDAiLCBGT1JNQVRURVIpKSwKICAgICAgICBuZXcgWChMb2NhbERhdGVUaW1lLnBhcnNlKCIyMDIyLTAxLTAxIDAyOjAwOjAwIiwgRk9STUFUVEVSKSksCiAgICAgICAgbmV3IFgoTG9jYWxEYXRlVGltZS5wYXJzZSgiMjAyMi0wMS0wMSAwMzowMDowMCIsIEZPUk1BVFRFUikpKTsKICAgIE1hcDxJbnRlZ2VyLCBMaXN0PFg+PiBtYXAgPSBsaXN0LnN0cmVhbSgpCiAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy5ncm91cGluZ0J5KHggLT4geC5nZXRUKCkuZ2V0SG91cigpKSk7CiAgICBTeXN0ZW0ub3V0LnByaW50bG4obWFwKTsKICB9Cn0KCmNsYXNzIFggewogIHByaXZhdGUgZmluYWwgTG9jYWxEYXRlVGltZSB0OwoKICBwdWJsaWMgWChMb2NhbERhdGVUaW1lIHQpIHsKICAgIHRoaXMudCA9IHQ7CiAgfQoKICBwdWJsaWMgTG9jYWxEYXRlVGltZSBnZXRUKCkgewogICAgcmV0dXJuIHQ7CiAgfQoKICBAT3ZlcnJpZGUKICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewogICAgcmV0dXJuICJYe3Q9IiArIHQgKyAnfSc7CiAgfQp9