1、map集合的排序
package com.jlwang.collections;
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.Map;
import java.util.Map.Entry;
public class TestMapSort
{
private Map<String, Integer> map_datas = new HashMap<String, Integer>();
public static void main(String[] args)
{
TestMapSort instance = new TestMapSort();
instance.initMap();
//排序前
// instance.printMap();
instance.printMapSortAfter();
}
public void initMap()
{
map_datas.put("A", 90);
map_datas.put("B", 50);
map_datas.put("C", 70);
map_datas.put("D", 60);
map_datas.put("F", 30);
}
public void printMapSortBefore()
{
Iterator<String> it = map_datas.keySet().iterator();
while(it.hasNext())
{
String key = it.next();
System.out.println(key+" : "+map_datas.get(key));
}
}
public void printMapSortAfter()
{
List<Map.Entry<String, Integer>> list_datasList = new ArrayList<Map.Entry<String, Integer>>(map_datas.entrySet());
Collections.sort(list_datasList,new Comparator<Map.Entry<String, Integer>>(){
@Override
public int compare(Entry<String, Integer> o1,
Entry<String, Integer> o2)
{
// TODO Auto-generated method stub
return o2.getValue() - o1.getValue();
}
});
//输出排序后结果
// this.printMapSortBefore();
for (int i = 0; i < list_datasList.size(); i++)
{
String key = list_datasList.get(i).getKey();
int value = list_datasList.get(i).getValue();
System.out.println(key + " : "+value);
}
}
public Map<String, Integer> getMap_datas() {
return map_datas;
}
public void setMap_datas(Map<String, Integer> map_datas) {
this.map_datas = map_datas;
}
}