对 List<Object> 排序,根据 Object 里的字段排序



import java.util.*;


List<Object> objectList = new ArrayList<>();

Collections.sort(objectList, new Comparator<Object>() {

   @Override
   public int compare(Object o1, Object o2) {

        return o1.getCreatedAt().compareTo(o2.getCreatedAt());

    }

});


注:Object 一个 Java 对象,排序的字段类型不限。



  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要根据map中的对象字段排序,需要先将map中的元素转换为List,再对List进行排序,最后再将排序后的List转换为Map。具体步骤如下: 1. 定义一个比较器,用于对List中的元素进行排序,如下所示: ``` public class MyComparator implements Comparator<Map.Entry<String, Map<String, List<Object>>>> { private String fieldName; public MyComparator(String fieldName) { this.fieldName = fieldName; } @Override public int compare(Map.Entry<String, Map<String, List<Object>>> o1, Map.Entry<String, Map<String, List<Object>>> o2) { // 获取要比较的字段Object fieldValue1 = o1.getValue().get(fieldName); Object fieldValue2 = o2.getValue().get(fieldName); // 对字段值进行比较,并返回比较结果 if (fieldValue1 instanceof Comparable && fieldValue2 instanceof Comparable) { return ((Comparable) fieldValue1).compareTo((Comparable) fieldValue2); } else { return 0; } } } ``` 2. 将Map转换为List,并对List中的元素进行排序,如下所示: ``` // 原始的Map Map<String, Map<String, List<Object>>> map = new HashMap<>(); // 将Map转换为List List<Map.Entry<String, Map<String, List<Object>>>> list = new ArrayList<>(map.entrySet()); // 对List中的元素进行排序 Collections.sort(list, new MyComparator("fieldName")); ``` 3. 将排序后的List转换为Map,如下所示: ``` // 创建一个新的Map,并将排序后的List中的元素加入到新的Map中 Map<String, Map<String, List<Object>>> sortedMap = new LinkedHashMap<>(); for (Map.Entry<String, Map<String, List<Object>>> entry : list) { sortedMap.put(entry.getKey(), entry.getValue()); } ``` 这使用LinkedHashMap来创建新的Map,可以保留原始Map中元素的插入顺序。需要注意的是,如果要对Map中的非Comparable类型字段进行排序,需要在比较器中进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值