一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Java Map 按Key排序实例代码

时间:2017-04-28 编辑:简简单单 来源:一聚教程网

Java Map 按Key排序

有时候我们业务上需要对map里面的值按照key的大小来进行排序的时候我们就可以利用如下方法来进行排序了,

 

 代码如下 复制代码

packagetest;

 

importjava.util.ArrayList;

importjava.util.Collections;

importjava.util.Comparator;

importjava.util.HashMap;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Set;

importjava.util.TreeSet;

 

public class Demo  {

 

  private HashMap map =newHashMap();

  private Set keySet = map.keySet();

 

  public Object  get(Integer  key)  {

    return map.get(key);

  }

 

  public void put(Integer  key,  Object  value)  {

    map.put(key,  value);

  }

 

  @SuppressWarnings("unchecked")

  publicvoidsort()  {

    List list =newArrayList(map.keySet());

    Collections.sort(list, new Comparator(){

      publicintcompare(Object a, Object b) {

         returna.toString().toLowerCase().compareTo(b.toString().toLowerCase());

      }

    });

 

    this.keySet  = new TreeSet(list);

  }

 

  public Set  keySet()  {

    return this.key

}

 

  publicstaticvoidmain(String [] args){

    Demo map=newDemo();

    map.put(11,"加");

    map.put(12,"关");

    map.put(13,"注");

    map.put(10,"添");

    map.put(1,"小");

    map.put(8,"记");

    map.put(9,"得");

    map.put(7,"客");

    map.put(5,"的");

    map.put(6,"博");

    map.put(4,"豆");

    map.put(3,"糖");

    map.put(2,"小");

    System.out.println("排序前");

    for(Iterator it =map.keySet().iterator();it.hasNext();){

      Integer key= (Integer)it.next();

      System.out.println("key[ " +  key  + "],  value[ " +  map.get(key)  + "] ");

    }

     //

    System.out.println("排序后");

     System.out.println("\n ");

     map.sort();

    for (Iterator it=map.keySet().iterator();it.hasNext();)  {

      Integer key=(Integer)it.next();

      System.out.println("key[ " +  key  + "],  value[ " +  map.get(key)  + "] ");

    }

  }

}

 

运行效果如下

排序前

 

 代码如下 复制代码

key[1],  value[ 小]

key[2],  value[ 小]

key[3],  value[ 糖]

key[4],  value[ 豆]

key[5],  value[ 的]

key[6],  value[ 博]

key[7],  value[ 客]

key[8],  value[ 记]

key[9],  value[ 得]

key[10],  value[ 添]

key[11],  value[ 加]

key[12],  value[ 关]

key[13],  value[ 注]

 

排序后

 

 代码如下 复制代码

key[1],  value[ 小]

key[2],  value[ 小]

key[3],  value[ 糖]

key[4],  value[ 豆]

key[5],  value[ 的]

key[6],  value[ 博]

key[7],  value[ 客]

key[8],  value[ 记]

key[9],  value[ 得]

key[10],  value[ 添]

key[11],  value[ 加]

key[12],  value[ 关]

key[13],  value[ 注]

 

热门栏目