Java对List按照Map中某一指定键的值来进行升序或者降序排序_map排序并控制升序降序-程序员宅基地

技术标签: Java  java  list  

可以使用Collections.sort()方法对List进行排序。

假设需要按照Map中某一指定键的值来进行升序或者降序排序,可以编写如下代码:

import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Map;

public class MapComparator implements Comparator {
    
    private String key; //Map的key
    private String comperValue; //up:升序,down:降序
    public MapComparator(String key,String comperValue) {
    
        this.key = key;
        this.comperValue = comperValue;
    }

    @Override
    public int comper(Map<String, Object> o1, Map<String, Object> o2) {
    
        //此为BigDecimal为例,如需排序其他类型只需要修改value1、value2的数据类型即可
        BigDecimal value1 = new BigDecimal(o1.get(key).toString());
        BigDecimal value2 = new BigDecimal(o1.get(key).toString());
        if ("up".equals(comperValue)){
    
            return value1.compareTo(value2);
        }else {
    
            return value2.compareTo(value1);
        }
    }
}

调用方法

		List<Map<String, Object>> myList = new ArrayList<Map<String, Object>>();
        Collections.sort(myList,new MapComparator("value","up"));
        System.out.println(myList);

其中,需要将“指定键”替换为需要进行比较的Map中的键名。如果需要进行降序排序,则可以将comperValue值换为down。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43868413/article/details/132885133

智能推荐

jquery 给类名元素添加行内样式_JAVA学习之路~JQuery-Day28-程序员宅基地

文章浏览阅读894次。一.jQuery的优点(1)提供了强大的功能函数(2)解决浏览器兼容性问题(3)实现丰富的 UI 和插件(4)纠正错误的脚本知识二.jQuery的核心1.用法用之前先引入jquery的文件2.核心三.DOM 对象和 jQuery 包装集对象1.dom对象 代码示例: <body> <div id="mydiv"></div></body&g..._jq 动态添加行内样式

文科大一计算机基础知识笔试答案,大学文科计算机基础知识点.doc-程序员宅基地

文章浏览阅读59次。大学文科计算机基础知识点《文科计算机基础(上)》教学内容????????????????????基础知识部分1、?计算机中的信息表示(1)???????数制、基数、权的概念(2)???????计算机科学中常见的数制:二进制、八进制、十进制以及十六进制。(3)???????数制之间的转换(限于无符号整数):除余法、二进制ó十进制、二进制ó十六进制、二进制ó八进制、十六进制ó十进制(4)???????...

apache memcache php phpize php支持memcache扩展-程序员宅基地

文章浏览阅读861次。上篇文章写了centos下编译安装lamp,这次写一下如果支持memchememcached 的工作原理首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。PHP 等客户端在与 memcached 服务建立连接之后,接下来的_apache memcache

集成springcloud Gateway(二)接入nacos注册中心_gateway不在nacos中注册服务也能实现 转发-程序员宅基地

文章浏览阅读335次。前置条件:安装nacos一、加入依赖在教程一的基础上,加入 <!--nacos服务发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <ve_gateway不在nacos中注册服务也能实现 转发

nginx部署访问vue-cli搭建的项目_nginx 关于vue-cli的配置-程序员宅基地

文章浏览阅读1.1w次。从vue-router官网了解到如果是用history模式构建的vue项目打包后是需要后端配置支持的,而hash是不需要的,只不过地址会多了一个#/的后缀。使用hash模式构建的项目打包后,我只需要使用webstorm之类的软件打开访问就能成功了。 但是我用history模式构建的项目需要借助后台技术,我这里选用的是nginx反向代理来部署项目。具体做法如下:_nginx 关于vue-cli的配置

随屏幕滚动的对联广告_有哪些网站用了对联广告形势-程序员宅基地

文章浏览阅读256次。 xmlns="http://www.w3.org/1999/xhtml">_有哪些网站用了对联广告形势

随便推点

干货!区块链入门、进阶、行业专家观点!1000篇好文帮你破解区块链密码!(中篇)...-程序员宅基地

文章浏览阅读989次。随着区块链概念理论的不断成熟以及强劲技术的不断深耕,区块链已经成为投资圈中备受关注的热点,从区块链1.0时代落地数字货币比特币、莱特币等,打开了区块链通向新弯道的高速路口,到区块链2.0时代开始通过智能合约来解决货币支付难题,再到3.0时代区块链尝试向各传统行业发力,标志着区块链逐渐由萌芽状态走向实际满足人们渴求状态。互联网时代已经深入整个世界,区块链...

基于二自由度机械臂/下肢外骨骼动力学模型的控制器(还在编写ing)_2自由度机械臂-程序员宅基地

文章浏览阅读536次,点赞2次,收藏11次。针对两自由度的机械臂和下肢进行学习,讲述了控制方法、基于模型的控制器、Lagrange动力学建模等,作为自己学习的记录_2自由度机械臂

字节面试官加微信,如果你正在准备面试TCP,看这一篇就够了,满满的干货-程序员宅基地

文章浏览阅读923次,点赞12次,收藏18次。一、TCP 简介========第一部分先为大家介绍一下 TCP 的主要概念,并讲解一下 TCP 的三个重要特性——1. 面向连接;2. 基于字节流;3. 可靠性。关于网络分层的概念实在是老生常谈了,下图就是两种经典的分层模型,可以看到 TCP 在网络分层中的位置。网络分层模型。

HarmonyOS 鸿蒙开发DevEco Studio OpenHarmony:在模块中添加Page_鸿蒙调用har中的pages-程序员宅基地

文章浏览阅读479次,点赞8次,收藏10次。在工程目录中,选中要增加Page的Feature Ability下的pages文件夹或pages文件夹下任意文件,单击鼠标右键,选择。在支持JS、eTS语言的工程中,支持添加新的Page。Page是表示Feature Ability的一个前台页面。,输入Page name(由大小写字母、数据和下划线组成),单击。如果是Har模块,则可以在Har模块下的任意目录下进行添加。_鸿蒙调用har中的pages

Linux系统分区_linux 分区-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏44次。0. 前言Linux系统中,系统分区主要分为四步。首先对硬盘进行分区,然后对每个分区分别进行格式化,接着Linux系统给每个硬件(包括磁盘的分区)自动进行设备文件名的定义,最后给每个分区分配挂载点。1. 磁盘分区磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区,不同类的目录与文件就可以存储进不同的分区。简单来说,磁盘分区的目的就是为了更快捷更方便的存储数据与使用数据。1.1 两种分区表格式首先说明,无论是Linux系统还是Windows系统,都有这两种分区表格式。换句话_linux 分区

推荐文章

热门文章

相关标签