HashMap按照value排序的实现
一、实现的思想
- 将HashMap中的元素按照Entry<Key,Value>类型存入到LinkedList集合中。
- 实现自定义排序,对LinkedList集合排序。
- LinkedList集合的元素存入到HashMap中,返回排序好的结果
二、代码实现
/**
*
* @param map HashMap<String, Integer> 按照值进行排序
* @return:返回排序后的Map
*/
public static HashMap<String, Integer> hashMapSort(HashMap<String, Integer> map){
//1、按顺序保存map中的元素,使用LinkedList类型
List<Entry<String, Integer>> keyList = new LinkedList<Entry<String, Integer>>(map.entrySet());
//2、按照自定义的规则排序
Collections.sort(keyList, new Comparator<Entry<String, Integer>>() {
@Override
public int compare(Entry<String, Integer> o1,
Entry<String, Integer> o2) {
if(o2.getValue().compareTo(o1.getValue())>0){
return 1;
}else if(o2.getValue().compareTo(o1.getValue())<0){
return -1;
} else {
return 0;
}
} });
//3、将LinkedList按照排序好的结果,存入到HashMap中
HashMap<String,Integer> result=new LinkedHashMap<>();
for(Entry<String, Integer> entry:keyList){
result.put(entry.getKey(),entry.getValue());
}
return result;
}
HashMap按照value排序的实现的更多相关文章
- 如何对HashMap按键值排序
Java中HashMap是一种用于存储“键”和“值”信息对的数据结构.不同于Array.ArrayList和LinkedLists,它不会维持插入元素的顺序. 因此,在键或值的基础上排序HashMap ...
- Treemap 有序的hashmap。用于排序
TreeMap:有固定顺序的hashmap.在需要排序的Map时候才用TreeMap. Map.在数组中我们是通过数组下标来对其内容索引的,键值对. HashMap HashMap 用哈希码快速定位一 ...
- 实现对HashMap的value排序
问题:如何对HashMap中的value值进行排序 关键点:1.取HashMap的Map.Entry,放入List2.利用Collections.sort(List, Comparator<? ...
- Java面试题:如何对HashMap按键值排序
Java中HashMap是一种用于存储“键”和“值”信息对的数据结构.不同于Array.ArrayList和LinkedLists,它不会维持插入元素的顺序. 因此,在键或值的基础上排序HashMap ...
- Java HashMap 默认排序
先看一段Java代码. package com.m58.test; import java.text.ParseException; import java.text.SimpleDateFormat ...
- 关于hashmap的排序
刚学java不久 之前在学习hashmap的时候 无意间发现,诶?怎么结果是排序的,然后重新输入了好多次,握草,原来java 1.8都实现了hashmap的排序 天真的我没有去网上查,没有去想java ...
- 如何高效的遍历HashMap 以及对key 进行排序
Map<Integer ,Object> map = new HashMap<Integer,Object>(); for(int i = 0; i<=100;i++){ ...
- java 中对hashmap进行排序
public class HashMapSort { public static void main(String[] args) { HashMap<Integer, Student> ...
- [Java集合] 彻底搞懂HashMap,HashTable,ConcurrentHashMap之关联.
注: 今天看到的一篇讲hashMap,hashTable,concurrentHashMap很透彻的一篇文章, 感谢原作者的分享. 原文地址: http://blog.csdn.net/zhanger ...
随机推荐
- Oracle 和 SQLSERVER 重新获取统计信息的方法
1. Oracle 重新获取统计信息的命令 exec dbms_stats.gather_schema_stats(ownname =>) # 需要修改 ownername options 指定 ...
- Jenkins 登录提示 登录无效 的解决办法
学习自:https://www.cnblogs.com/amberly/p/6288773.html 1. jenkins服务器重启之后, 再次登录提示登录无效. 重启多次也无法解决. 2. 根据文档 ...
- Axure8.0从入门到精通
1. 新建工程 菜单->File->New 2. 添加组件并编辑组件 选中左侧Libary可选择Default/Flow/Icons,找到相应的组件并移动到工作区:并在右侧选中相应的组件属 ...
- 2.18比赛(T2,T3留坑)
2.18比赛(T2,T3留坑) pdf版题面 pdf版题解 超越一切(ak) [题目描述] 夏洛可得到一个(h+1)×(w+1)的巧克力,这意味着她横着最多可 以切 h 刀,竖着最多可以切 w 刀 她 ...
- 删除文件,copy文件bat
由于IntelliJ IDEA Build Artifacts速度实在是无法忍受,特整理了一个bat脚本方便maven install后更新jar文件到部署包 del /F /S /Q D:\Idea ...
- MT【56】2017联赛一试解答最后一题:一道复数题的几何意义
- 自学Linux Shell15.1-处理信号
点击返回 自学Linux命令行与Shell脚本之路 15.1-处理信号 Linux使用信号与系统上运行的进程进行通信.可以使用这些信号控制Shell脚本的运行,只需要让shell脚本在接收到来自Lin ...
- 架构师成长之路2.2-PXE+Kickstart安装部署
点击返回架构师成长之路 架构师成长之路2.2-PXE+Kickstart安装部署 系统测试环境: 实验环境:VMware Workstation 12 系统平台:CentOS Linux releas ...
- 【BZOJ3668】【NOI2014】起床困难综合症(贪心)
[NOI2014]起床困难综合症(贪心) 题面 Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚 ...
- emwin之多次删除同一窗口导致死机现象
@218-7-24 [现象] 使用函数 GUI_EndDialog() 多次删除同一窗口,导致系统死机,调试发现代码会卡死在以下两处 > 1.启动文件中 > 2.HardFault中断内 ...