Map排序
来源:互联网 发布:八维研修学院java课程 编辑:程序博客网 时间:2024/06/08 12:22
package lzh;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.TreeMap;/** * Map排序 * @author lzh * */public class TestMapSort {public static void main(String[] args) {Map<String, String> map = new HashMap<String, String>();map.put("a", "c");map.put("b", "b");map.put("c", "a");map.put("1", "abc");//MapSort1(map);//MapSort2(map);MapSort3();}private static void MapSort3() {Map<String, String> map = new TreeMap<String, String>(new Comparator<String>() { public int compare(String obj1, String obj2) { return obj2.compareTo(obj1);// 降序排序 }});map.put("a", "c");map.put("b", "b");map.put("c", "a"); for (String key : map.keySet()) { System.out.println(key + " :" + map.get(key));}}/** * 按value排序(通用) * @param map */private static void MapSort2(Map<String, String> map) {// 通过ArrayList构造函数把map.entrySet()转换成list List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet()); // 通过比较器实现比较排序 Collections.sort(list, new Comparator<Map.Entry<String, String>>() { public int compare(Map.Entry<String, String> mapping1, Map.Entry<String, String> mapping2) { return mapping1.getValue().compareTo(mapping2.getValue()); } }); for (String key : map.keySet()) { System.out.println(key + " :" + map.get(key)); }}private static void MapSort1(Map<String, String> map) {//因为Map这个类没有继承Iterable接口所以不能直接通过map.iterator来遍历(list,set就是实现了这个接口,所以可以直接这样遍历),//所以就只能先转化为set类型,用entrySet()方法,其中set中的每一个元素值就是map中的一个键值对,也就是Map.Entry<K,V>了,然后就可以遍历了。//基本上 就是遍历map的时候才用得着它吧。// 通过ArrayList构造函数把map.entrySet()转换成listList<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());// 通过比较器实现比较排序Collections.sort(list, new Comparator<Map.Entry<String, String>>() {public int compare(Map.Entry<String, String> mapping1, Map.Entry<String, String> mapping2){ return mapping1.getKey().compareTo(mapping2.getKey());}});for (Map.Entry<String, String> mapping : list) { System.out.println(mapping.getKey() + " :" + mapping.getValue());}} }
0 0
- Map排序
- map排序
- MAP排序
- Map排序
- Map排序
- map 排序
- map 排序
- map排序
- map 排序
- MAP排序
- Map排序
- map排序
- map排序
- Map 排序
- Map排序
- map排序
- Map排序
- Map排序
- 解决smartsvn不能上传静态库问题
- oracle误删除数据的恢复方法
- 帮助你实现响应式导航的 jQuery 插件
- 优秀不够,你是否无可替代
- LeetCode笔记:119. Pascal's Triangle II
- Map排序
- 分享:真机页面调试+抓包,调试微信生产环境 HTTPS 页面工具集成。(weinre + AnyProxy)
- 设计模式6大原则
- 高性能IO模型浅析
- Security Issue: Command injection
- 数据类型——变量常量和声明与定义
- 华为手机调试时Log信息不显示
- Android获取屏幕实际高度跟显示高度,判断Android设备是否拥有虚拟功能键
- (转)win7 64位 python3.5安装scrapy问题解决