Java语言利用Collections.sort对Map,List排序
2018-06-18 00:41:56来源:未知 阅读 ()
1.main方法包含TreeMap排序1,TreeMap排序2,HashMap排序,List<Integer>排序,List<Bean>排序,List<Map>排序
package com.tao.test; 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.Map.Entry; import java.util.TreeMap; public class Sort { public static void main(String[] args) { // TreeMap排序1 Map<String, String> treeMap = new TreeMap<String, String>(new Comparator<String>() { public int compare(String o1, String o2) { // 升序排序 return o1.compareTo(o2); } }); treeMap.put("c", "ccccc"); treeMap.put("a", "aaaaa"); treeMap.put("b", "bbbbb"); treeMap.put("d", "ddddd"); // 排序后输出 for (String key : treeMap.keySet()) { System.out.println("Key=" + key + ", Value=" + treeMap.get(key)); } // TreeMap排序2 Map<String, Integer> treeMap2 = new TreeMap<String, Integer>(); treeMap2.put("d", 3); treeMap2.put("b", 4); treeMap2.put("a", 7); treeMap2.put("c", 1); // 转换成list List<Map.Entry<String, Integer>> treeList = new ArrayList<Map.Entry<String, Integer>>(treeMap2.entrySet()); Collections.sort(treeList, new Comparator<Map.Entry<String, Integer>>() { // 升序排序 public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { return o1.getValue().compareTo(o2.getValue()); } }); // 排序后输出 for (Map.Entry<String, Integer> m : treeList) { System.out.println("Key=" + m.getKey() + ", Value=" + m.getValue()); } // HashMap排序 Map<String, Integer> hashMap = new HashMap<String, Integer>(); hashMap.put("c", 3); hashMap.put("a", 2); hashMap.put("b", 1); hashMap.put("d", 4); List<Map.Entry<String, Integer>> hashList = new ArrayList<Map.Entry<String, Integer>>(hashMap.entrySet()); Collections.sort(hashList, new Comparator<Map.Entry<String, Integer>>() { // 升序排序 public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { return o1.getValue().compareTo(o2.getValue()); } }); // 排序后输出 for (Map.Entry<String, Integer> m : hashList) { System.out.println("Key=" + m.getKey() + ", Value=" + m.getValue()); } // List<Integer>排序 List<Integer> nums = new ArrayList<Integer>(); nums.add(3); nums.add(5); nums.add(2); nums.add(1); // 升序排序(默认) Collections.sort(nums); // 排序后输出 System.out.println(nums); // List<Bean>排序 List<User> users = new ArrayList<User>(); users.add(new User(2, "jack")); users.add(new User(1, "tom")); users.add(new User(3, "keck")); users.add(new User(4, "tao")); // id升序排序 Collections.sort(users); // 排序后输出 for (User user : users) { System.out.println(user.getId() + "," + user.getName()); } // List<Map>排序 List<Map<String, Integer>> listMap = new ArrayList<Map<String, Integer>>(); Map<String, Integer> map = new HashMap<>(); map.put("age", 20); map.put("sex", 1); listMap.add(map); Map<String, Integer> map2 = new HashMap<>(); map2.put("age", 29); map2.put("sex", 2); listMap.add(map2); Map<String, Integer> map3 = new HashMap<>(); map3.put("age", 35); map3.put("sex", 1); listMap.add(map3); // 按照map值排序 Collections.sort(listMap, new Comparator<Map<String, Integer>>() { @Override public int compare(Map<String, Integer> o1, Map<String, Integer> o2) { return o1.get("age").compareTo(o2.get("age"));// age升序排序 } }); // 排序后输出 for (Map<String, Integer> m : listMap) { System.out.println(m); } } }
2.List<User>排序的User.java类:
package com.tao.test; public class User implements Comparable<User>{ private int id; private String name; public User(int id, String name) { super(); this.id = id; this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } @Override public int compareTo(User o) { return this.id - o.getId();//id升序排序 } }
3.运行截图
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:java复习基础篇——JDBC
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash