whyclxw
4 小时以前 e196f42e9a977c0b2f8452dce875b110fb76e92f
src/main/java/com/whyc/util/ActionUtil.java
@@ -18,6 +18,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;
@@ -674,7 +675,32 @@
      return result.toString();
   }
    //给Map<String, Map<String,List<String>>>去重合并
   public static Map<String, List<String>> getMergeMap(Map<String, Map<String,List<String>>> allTimeMap) {
      Map<String, List<String>> mergedMap = new HashMap<>();
      for (Map<String, List<String>> innerMap : allTimeMap.values()) {
         for (Map.Entry<String, List<String>> entry : innerMap.entrySet()) {
            String key = entry.getKey();
            List<String> valueList = entry.getValue();
            mergedMap.computeIfAbsent(key, k -> new ArrayList<>())
                  .addAll(valueList);
         }
      }
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
      // 去重(保留顺序)
      mergedMap.forEach((key, list) -> {
         Set<String> seen = new LinkedHashSet<>();
         list.removeIf(s -> !seen.add(s));
         // 排序:将字符串解析为 LocalDateTime 后排序
         list.sort((s1, s2) -> {
            LocalDateTime d1 = LocalDateTime.parse(s1, formatter);
            LocalDateTime d2 = LocalDateTime.parse(s2, formatter);
            return d1.compareTo(d2);
         });
      });
      return mergedMap;
   }
   public static void main(String[] args) throws ParseException {
      /*List<String> dateList =getDateListBetweenDates(ActionUtil.sdf.parse("2025-01-01 00:00:00"),new Date());
      for (String date : dateList) {