欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java Map 按Key排序实例代码

程序员文章站 2024-03-06 17:39:44
java map 按key排序 有时候我们业务上需要对map里面的值按照key的大小来进行排序的时候我们就可以利用如下方法来进行排序了, package tes...

java map 按key排序

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

package test;

import java.util.arraylist;
import java.util.collections;
import java.util.comparator;
import java.util.hashmap;
import java.util.iterator;
import java.util.list;
import java.util.set;
import java.util.treeset;

public  class  demo  {

  private  hashmap<integer, object> map =new hashmap<integer, object>();
  private  set<integer> 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")
  public void sort()  {
    list<integer> list =new arraylist<integer>(map.keyset());
    collections.sort(list,  new  comparator<object>(){
      public int compare(object a, object b) {
         return a.tostring().tolowercase().compareto(b.tostring().tolowercase());
      }
    });

    this.keyset  =  new  treeset<integer>(list);
  }

  public  set<integer>  keyset()  {
    return  this.key
}

  public static void main(string [] args){
    demo map= new demo();
    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[ 注] 



感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!