有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何按日期对以TreeMap为值的ArrayList进行排序

在我的代码中有ArrayList<TreeMap<String, Object>>。{}将拥有的是键和值。有一个名为sent_date的键,其值的格式为yyyy-MM-DD HH:MM:SS。我找不到一个方法来排序这个列表。。。有人能帮忙吗?谢谢


共 (2) 个答案

  1. # 1 楼答案

    在Java8中,这将是(对于修改列表的排序):

    DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    list.sort(Comparator.comparing(m -> LocalDateTime.parse(m.get("sent_date"), format)));
    

    或者,如果您想保留原始列表:

    newList = list.stream()
                  .sorted(Comparator.comparing(...))
                  .collect(Collectors.toList());
    
  2. # 2 楼答案

    您可以使用Collections.sort(list, comparator),在这里您必须实现一个Comparator<Map<String,?>>来执行您需要的操作(即从两个映射中检索sent_date,并比较它们)