个人随笔
目录
对Map进行按key值排序和按value排序
2019-02-18 23:59:15

这里举个简单例子,就实现Map<String,String>按KEY值升序和按VALUE升序的例子,代码如下:

一、完整例子

  1. package test;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Comparator;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.Map.Entry;
  9. import java.util.Set;
  10. import java.util.TreeMap;
  11. /**
  12. *@Author suibibk.com
  13. */
  14. public class Test {
  15. public static void main(String[] args) {
  16. Map<String, String> map= new HashMap<String, String>();
  17. map.put("5", "1");
  18. map.put("4", "2");
  19. map.put("1", "4");
  20. map.put("2", "3");
  21. map.put("3", "5");
  22. System.out.println(sortMapFromKey(map));
  23. System.out.println(sortMapFromValue(map));
  24. }
  25. //按KEY值升序
  26. public static Map<String, String> sortMapFromKey(Map<String,String> map){
  27. Map<String, String> map2 = new TreeMap<String, String>(
  28. new Comparator<String>() {
  29. public int compare(String obj1, String obj2) {
  30. //升序排序(反过来就是降序排序)
  31. return obj1.compareTo(obj2);
  32. }
  33. });
  34. for (Map.Entry<String, String> entry : map.entrySet()) {
  35. String key = entry.getKey();
  36. String value = entry.getValue();
  37. map2.put(key, value);
  38. }
  39. return map2;
  40. }
  41. //按VALUE值升序
  42. public static List<Map.Entry<String, String>> sortMapFromValue(Map<String,String> map){
  43. //a、要转成key先
  44. Set<Entry<String, String>> entrySet = map.entrySet();
  45. List<Map.Entry<String,String>> listMap = new ArrayList<Map.Entry<String, String>>(entrySet);
  46. //b、然后再排序
  47. Collections.sort(listMap, new Comparator<Map.Entry<String, String>>(){
  48. @Override
  49. public int compare(Entry<String, String> o1,Entry<String, String> o2) {
  50. int result = ((String) o1.getValue()).compareTo(o2.getValue());
  51. return result;
  52. }
  53. });
  54. return listMap;
  55. }
  56. }

二、运行结果

  1. {1=4, 2=3, 3=5, 4=2, 5=1}
  2. [5=1, 4=2, 2=3, 1=4, 3=5]

温馨提示下,这里按VALUE排序的输出结果是List哦,如果还想转成数组,就直接遍历放入MAP中即可。

 1343

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2