首页 > 编程语言 >Java--hashmap如何根据value排序

Java--hashmap如何根据value排序

时间:2024-05-30 19:31:42浏览次数:14  
标签:map Java hashmap Map -- List put 排序 HashMap

java中map根据value排序

在Java中,Map是一种非常常用的数据结构,它通过键值对的形式存储数据,Map本身是无序的,但是在实际应用中,我们有时需要根据Map的值来进行排序,本文将介绍如何使用Java中的Map来实现根据Value排序。

Map转TreeMap

在Java中,可以使用TreeMap来根据HashMap的值进行排序。

import java.util.*;
 
public class SortHashMapByValue {
    public static void main(String[] args) {
        // 创建一个HashMap
        HashMap<String, Integer> map = new HashMap<>();
        map.put("A", 10);
        map.put("B", 5);
        map.put("C", 20);
        map.put("D", 15);
 
        // 使用TreeMap对HashMap的值进行排序
        Map<String, Integer> sortedMap = new TreeMap<>(
            new Comparator<String>() {
                @Override
                public int compare(String k1, String k2) {
                    return map.get(k1) - map.get(k2);
                }
            }
        );
        sortedMap.putAll(map);
 
        // 打印排序后的HashMap
        for (Map.Entry<String, Integer> entry : sortedMap.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }
}

Map转换为List

将Map中的键值对转换为List,然后通过对List进行排序来得到排序后的结果。
具体代码如下

package org.example;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class hashmap_list {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("A",10);
        map.put("B",5);
        map.put("C",20);
        map.put("D",15);
        //Map中的键值对转换为List,并通过对List进行排序来得到排序后的结果
        List<Map.Entry<String, Integer>> sortedList =
                map.entrySet().stream().sorted(Map.Entry.comparingByValue()).collect(Collectors.toList());
        for (Map.Entry<String, Integer> stringIntegerEntry : sortedList) {
            System.out.println(stringIntegerEntry.getKey()+","+stringIntegerEntry.getValue());
        }//对value排序
        System.out.println("=======================");
        List<Map.Entry<String, Integer>> sortedList1 =
                map.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toList());
        for (Map.Entry<String, Integer> stringIntegerEntry : sortedList1) {
            System.out.println(stringIntegerEntry.getKey()+","+stringIntegerEntry.getValue());
        }//对key排序
    }
}

标签:map,Java,hashmap,Map,--,List,put,排序,HashMap
From: https://blog.csdn.net/qq_52260669/article/details/139332045

相关文章

  • 链表9(优化版)7-9 sdut-C语言实验-约瑟夫问题
    7-9sdut-C语言实验-约瑟夫问题分数20全屏浏览切换布局作者 马新娟单位 山东理工大学n个人想玩残酷的死亡游戏,游戏规则如下:n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号......
  • 使用Python进行大规模数据处理和分析
    ......
  • 优化Python中的数据结构与算法(指南)
    ......
  • JSON 文件操作:Python 中最好的 JSON 数据持久化工具
    ......
  • 如何使用Python进行数据清洗和预处理
    ......
  • 网络运维的重要性
    网络运维,即网络运行与维护,是现代信息化社会中不可或缺的一环。随着企业对信息技术依赖程度的加深,以及云计算、大数据、物联网等技术的快速发展,网络运维的重要性日益凸显。以下是网络运维重要性的详细说明:保障业务连续性:网络是企业日常运营的基础设施,一旦网络出现故障,将直......
  • Milvus向量数据库详解
    Milvus向量数据库是一款专为向量查询与检索设计的云原生数据库,它具备高性能、高可用、易拓展的特点,主要用于处理由深度神经网络和其他机器学习模型生成的Embedding向量。以下是关于Milvus向量数据库的详细说明:定义与用途:Milvus是一款云原生向量数据库,专为处理海量向量数据......
  • web前端三大主流框架
    Web前端三大主流框架分别是Angular、React和Vue.js。下面我将分别详细介绍这三个框架的特点、优缺点以及应用场景。1.Angular特点:完整性:Angular是一个完整的框架,提供了数据绑定、组件化、路由、依赖注入等功能。TypeScript支持:Angular使用TypeScript进行开发,提供了静态类型......
  • 【软件测试】软件测试概念 | 测试用例 | BUG | 开发模型 | 测试模型 | 生命周期
    文章目录一、什么是软件测试1.什么是软件测试2.软件测试和调试的区别测试人员需要的素养二、软件测试概念1.需求1.需求的定义2.测试人员眼中的需求2.测试用例1.测试用例概念3.BUG软件错误4、开发模型和测试模型1.软件的生命周期2.开发模型1.瀑布模型2.螺旋模型3.......
  • 代码随想录算法训练营第四十四天|01 背包、动态规划:01背包理论基础(滚动数组)、416. 分
    01背包文档讲解:代码随想录题目链接:46.携带研究材料(第六期模拟笔试)有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 暴力解法:每个物品都有放与不放两种状态......