map实现快速排序

比较BigDecimal的值大小,根据BigDecimal值取不同的key,
代码如下:

package com.user.controller;

import java.math.BigDecimal;
import java.util.*;

/**
 * @ClassName Test
 * @Description DOTO 比较BigDecimal的值大小,根据BigDecimal值取不同的key
 * @Author mischen
 * @Date 2021/11/14 0014 17:24
 * @Version 1.0
 **/
public class Test {
    
    

    public static void main(String[] args) {
    
    
        Map<String,BigDecimal> stu = new TreeMap<>();
        stu.put("应付账款",new BigDecimal(621));
        stu.put("应收账款",new BigDecimal(621));
        stu.put("其他应付款",new BigDecimal(100));
        stu.put("短期借款",new BigDecimal(546));
        stu.put("长期借款",new BigDecimal(78.39));
        List<Map.Entry<String,BigDecimal>> entrys=new ArrayList<>(stu.entrySet());
        Collections.sort(entrys, new MyComparator());
        //3:遍历排好序的Entry-list,可得到按顺序输出的结果
        for (Map.Entry<String,BigDecimal> entry : entrys) {
    
    
            System.out.println(entry.getKey() + "," + entry.getValue());
        }
        String first = entrys.get(0).getKey();
        String second = entrys.get(1).getKey();
        String Third = entrys.get(2).getKey();
        System.out.println("第一个:"+first);
        System.out.println("第二个:"+second);
        System.out.println("第三个:"+Third);
    }
    //按住key排序
    static class MyComparator implements Comparator<Map.Entry> {
    
    
        public int compare(Map.Entry o1, Map.Entry o2) {
    
    
            return ((BigDecimal) o2.getValue()).compareTo((BigDecimal) o1.getValue());
        }
    }
}

程序运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/miachen520/article/details/121321780