List<Map<String,Object>>根据同个key的值 自定义排序

package com.chinairi.kafka.datapush.utils;

import java.util.*;

public class CustomComparator implements Comparator<Map<String, Object>> {
   
    private String key;

    public CustomComparator(String key) {
   
        this.key = key;
    }

    @Override
    public int compare(Map<String, Object> map1, Map<String, Object
按照Mapkey排序,可以使用TreeMap来实现。TreeMap是基于红黑树实现的,它会根据key的自然顺序或者自定义的Comparator进行排序。 在你的情况下,MapkeyObject类型,所以需要确保Object类实现了Comparable接口或者提供了自定义的Comparator来进行排序。 以下是一个示例代码,演示如何按照Mapkey排序: ```java import java.util.*; public class Main { public static void main(String[] args) { // 创建一个Map<Object, List<Map<String, Object>>>对象 Map<Object, List<Map<String, Object>>> map = new TreeMap<>(); // 添加一些数据到mapList<Map<String, Object>> list1 = new ArrayList<>(); list1.add(createMap("name", "Alice", "age", 25)); list1.add(createMap("name", "Bob", "age", 30)); map.put(2, list1); List<Map<String, Object>> list2 = new ArrayList<>(); list2.add(createMap("name", "Charlie", "age", 35)); list2.add(createMap("name", "David", "age", 40)); map.put(1, list2); // 按照key排序 Map<Object, List<Map<String, Object>>> sortedMap = new TreeMap<>(map); // 输出排序后的结果 for (Map.Entry<Object, List<Map<String, Object>>> entry : sortedMap.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } } // 辅助方法,用于创建一个包含键对的Map对象 private static Map<String, Object> createMap(Object... args) { if (args.length % 2 != 0) { throw new IllegalArgumentException("参数个数必须为偶数"); } Map<String, Object> map = new HashMap<>(); for (int i = 0; i < args.length; i += 2) { map.put((String) args[i], args[i + 1]); } return map; } } ``` 运行以上代码,输出结果如下: ``` 1: [{name=Charlie, age=35}, {name=David, age=40}] 2: [{name=Alice, age=25}, {name=Bob, age=30}] ``` 注意,这里的排序按照key的自然顺序进行的。如果你想要自定义排序规则,可以在创建TreeMap对象时传入自定义的Comparator。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值