zoukankan      html  css  js  c++  java
  • HashMap的两种排序方式

     1 package Test4;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collections;
     5 import java.util.Comparator;
     6 import java.util.HashMap;
     7 import java.util.List;
     8 import java.util.Map;
     9  
    10 public class Test { 
    11 
    12     public static void main(String[] args) { 
    13         Map<String, Integer> map = new HashMap<String, Integer>();
    14         map.put("d", 2);
    15         map.put("c", 1);
    16         map.put("b", 1);
    17         map.put("a", 3);
    18 
    19         List<Map.Entry<String, Integer>> infoIds = 
    new ArrayList<Map.Entry<String, Integer>>(map.entrySet()); 21     //ArrayList(Collection<? extends E> c)是ArrayList的一个不常用的构造方法,
    构造一个包含指定 collection 的元素的列表。
    22 23 //排序前 24 for (int i = 0; i < infoIds.size(); i++) { 25 String key= infoIds.get(i).getKey(); 26 int value= infoIds.get(i).getValue(); 27 System.out.println(key+":"+value); 28 } 29 /*输出结果: 30 d:2 31 b:1 32 c:1 33 a:3 */ 34 35 //排序 36 //重写compare方法 37 Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { 38 public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { 39 //return (o2.getValue() - o1.getValue()); //根据value排序 40 return (o1.getKey()).toString().compareTo(o2.getKey());//根据key排序 41 } 42 }); 43 44 //排序后 45 for (int i = 0; i < infoIds.size(); i++) { 46 String key= infoIds.get(i).getKey(); 47 int value= infoIds.get(i).getValue(); 48 System.out.println(key+":"+value); 49 } 50 //根据key排序 51 //a:3 52 //b:1 53 //c:1 54 //d:2 55 //根据value排序 56 //a:3 57 //d:2 58 //b:1 59 //c:1 60 } 61 }
  • 相关阅读:
    深入了解Java ClassLoader、Bytecode 、ASM、cglib (I)
    如何在ant里import
    敏捷练习(1)评估我的生活方向盘
    你是一个合格的孩子吗?
    [转] C# 路径(目录)
    XML学习记录
    js学习总结不断更新(1)
    LINQ TO XML练习
    做技术,切不可沉湎于技术
    js学习总结持续更新(2)
  • 原文地址:https://www.cnblogs.com/lyr2015/p/4758529.html
Copyright © 2011-2022 走看看