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) {
    List<X> list = List.of(
        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()));
    System.out.println(map);
  }
}

class X {
  private final LocalDateTime t;

  public X(LocalDateTime t) {
    this.t = t;
  }

  public LocalDateTime getT() {
    return t;
  }

  @Override
  public String toString() {
    return "X{t=" + t + '}';
  }
}