java HashMap按值进行排序

java HasnMap 按值进行排序方法

实现代码如下:

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.HashMap;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.List;

import java.util.Map;


public class AddAll {

     public static void main(String [] args) {

       Map<String,Integer> map=new HashMap<String,Integer>();

       for(int i=0;i<5;i++) {

       map.put(String.valueOf(i),i);

       }

       List<Map.Entry<String,Integer>> list=new ArrayList<Map.Entry<String,Integer>>();

       CompareValue cop=new CompareValue();

       Map<String,Integer> lmap=new LinkedHashMap<String,Integer>();

       list.addAll(map.entrySet());

       Collections.sort(list,cop);

       Iterator<Map.Entry<String, Integer>> it=list.iterator();

       while(it.hasNext()) {

       String key=it.next().getKey();

       lmap.put(key,map.get(key));

       }

       System.out.print(lmap);

     }


}

class CompareValue implements Comparator<Map.Entry<String,Integer>>{

public int compare(Map.Entry<String,Integer> u,Map.Entry<String,Integer> m) {

return m.getValue()-u.getValue();

}

}


方法解析:

1:首先生成一个HashMap,实际情况下是从数据库取得HashMap。

2:产生一个Map.Entry<K,M>类型的List,Entry<K,M>是Map声明的一个内部范性接口。

3:对list进行赋值,其值为map.entrySet()->有getKey()和getValue()方法获取键/值。

4:使用Collections提供的sort方法按照对Comparator的compare方法重新实现后的方法进行排序;

5:用list生成一个Iterator迭代器,进行迭代,取得key值并写入LinkedHashMap中(按照插入顺序进行排序)



猜你喜欢

转载自blog.csdn.net/Alpha_Paser/article/details/74936724
今日推荐