list 中存放 map,然后排序

本文介绍了一种在Java中如何对存放在List中的Map按值进行排序的方法。通过自定义比较器实现,适用于只需要存储键值对的情况。示例代码展示了具体的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天同事遇到一个问题,需要在List中存放Map,每个map只存储一对值。

需要按值排序。

勾起了记忆深处的java 比较器。这玩意不常用,估计很多人都没怎么用过。

觉得有点意思,特意贴出来。

 

Public class Test{

    public void test(){
       List<Map<String,Integer>> list = new ArrayList<Map<String,Integer>>();
	Map<String,Integer> t1 = new HashMap<String,Integer>();
	Map<String,Integer> t2 = new HashMap<String,Integer>();
	Map<String,Integer> t3 = new HashMap<String,Integer>();
	Map<String,Integer> t4 = new HashMap<String,Integer>();
	t1.put("a", 1);
	t2.put("b", 2);
	t3.put("c", 3);
	t4.put("d", 1);
	list.add(t1);
	list.add(t2);
	list.add(t3);
	list.add(t4);
	Collections.sort(list, new MapCompare());
	System.out.println(list);
    }

    private class MapCompare implements Comparator<Map<String,Integer>>{

      public int compare(Map<String,Integer> o1, Map<String,Integer> o2) {
		int value1 = o1.entrySet().iterator().next().getValue();
		int value2 = o2.entrySet().iterator().next().getValue();
		
		return value1-value2;
	}

   }





}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值