实现对HashMap的value排序
问题:
如何对HashMap中的value值进行排序
关键点:
1.取HashMap的Map.Entry,放入List
2.利用Collections.sort(List, Comparator<? extents T>)对Map.Entry中的value进行排序
3.实现内部类Comparator,实现String的compare方法
代码:
import java.util.*;
public class HashMapTest {
public static void main(String[] args){
HashMap<String, String> map = new HashMap<>();
map.put("one", "good");
map.put("two", "bad");
map.put("three", "happy");
map.put("fourth", "sad");
List<Map.Entry<String, String>> listEntry = new ArrayList<>();
listEntry.addAll(map.entrySet());
Collections.sort(listEntry, new Comparator<Map.Entry<String, String>>() {
@Override
public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
// String的compareTo方法,返回负数,说明o1在o2的字典顺序之前。
return o1.getValue().compareTo(o2.getValue());
}
});
for(Map.Entry<String, String> entry : listEntry){
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
运行结果:

结果按照英文字母表的顺序排序。
实现对HashMap的value排序的更多相关文章
- 【原创】关于hashcode和equals的不同实现对HashMap和HashSet集合类的影响的探究
这篇文章做了一个很好的测试:http://blog.csdn.net/afgasdg/article/details/6889383,判断往HashSet(不允许元素重复)里塞对象时,是如何判定set ...
- C#代码实现对HTTP POST参数进行排序
private static string GetSortedParas(Dictionary<string, string> dic) { dic = dic.OrderBy(key = ...
- C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客
C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客 C++中实现对map按照value值进行排序 2012-03-15 15:32:36 标签:map 职场 休闲 排 ...
- 使用泛型实现对int数组或者String数组进行排序
因为是使用的泛型,我们并不确定数据类型, 对于数据的比较就不能用平时的大于或者小于. 我们需要比较对象实现Comparable接口,该接口下的compareTo()方法可以用来比大小 定义Sort类: ...
- 使用代理实现对C# list distinct操作
范型在c#编程中经常使用,而经常用list 去存放实体集,因此会设计到对list的各种操作,比较常见的有对list进行排序,查找,比较,去重复.而一般的如果要对list去重复如果使用linq dist ...
- 实现对DataGird控件的绑定操作
//实现对DataGird控件的绑定操作 function InitGrid(queryData) { $('#grid').datagrid({ //定位到Table标签,Table标签的ID是gr ...
- 利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解
本文转载自利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解 导语 由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作,就抽空研究 ...
- 基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理
http://www.cnblogs.com/wuhuacong/p/4175266.html 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel ...
- 在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
from:http://m.blog.csdn.net/article/details?id=51075023 在VS2015中先创建C#项目,然后再创建要编写的动态库DLL项目,这样做的好处是整个解 ...
随机推荐
- vue-cli 使用 webpack-bundle-analyzer
# build for production and view the bundle analyzer report npm run build --report
- error CS1002: ; expected 错误解决
一般出现这种错误,大概原因是因为前端页面里的C#代码少个分号,或少个括号 导致编译器出错:仔细检查页面中的C#代码是否写的正确. 我之所以出现这个错误是因为前台页面中:@{ } 这里的代码少一个括号 ...
- Manjaro安装后,应该做的操作,仅作为自己备份使用,如有参考不懂,请留言咨询,或Q609916691
家目录下,通用文件夹名称中英文互转: --(1)中文->英文 export LANG=en_US.UTF-8 xdg-user-dirs-update --force --(2)英文->中 ...
- vue版 弹幕
效果: 下载 优化版下载: https://pan.baidu.com/s/1mvKGwJsBjXd2hvvi5Rp9pA 用法: import barrage from '../components ...
- svn 的权限配置
#分配用户所属组 g_admin=admin g_ui=zhangsan,lisi g_code=wangwu g_test=zhaoliu,qianqi #分配目录权限 #表示项目根目录 [/] @ ...
- Web的Flex弹性盒模型
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- loglog 函数的使用
验证数值算法的正确性,有一个很重要的指标就是收敛阶($\tt\bf Convergent~Rate$) 当有误差估计: $$Error=\lVert u(x)-u_N(x) \rVert \simeq ...
- Mac OS X 绑定80端口,不装nginx的小技巧
Mac OS X 因为要绑定80端口需要ROOT权限, 但是如果用root权限启动eclipse或tomcat又会造成, 启动创建的各类文件是root的,普通用户无法删除. 为此, 我们可以通过pfc ...
- 数据结构与算法之PHP递归函数
一.递归函数的定义 递归函数即自调用函数,在函数体内部直接或者间接的自己调用自己,即函数的嵌套调用是函数本身. 通常在此类型的函数题中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定的条 ...
- Tensorflow选择性初始化图中的变量
import tensorflow as tf def initialize_uninitialized(sess): global_vars = tf.global_variables() is_n ...