① java中list里面存放map,根据map中的某两个个字段进行排序
packagecom.compare.test;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassMain{
publicstaticvoidmain(String[]args){
MainmainTest=newMain();
mainTest.sortMap();
}
publicvoidsortMap(){
List<Map<Integer,Double>>maps=newArrayList<Map<Integer,Double>>();
for(inti=0;i<10;i++){
HashMap<Integer,Double>map=newHashMap<Integer,Double>();
for(intj=0;j<2;j++){
map.put(j,Math.random());
}
maps.add(map);
}
for(Map<Integer,Double>map:maps){
System.out.println(getValue(map));
}
System.out.println("************************");
Map<Integer,Double>currentMap;
for(inti=0;i<maps.size()-1;i++){
for(intj=0;j<maps.size()-i-1;j++){
if(getValue(maps.get(j))>getValue(maps.get(j+1))){
currentMap=maps.get(j+1);
maps.set(j+1,maps.get(j));
maps.set(j,currentMap);
}
}
}
for(Map<Integer,Double>map:maps){
System.out.println(getValue(map));
}}
publicDoublegetValue(Map<Integer,Double>currentMap){
returncurrentMap.get(0)+currentMap.get(1);
}
}
我采用最简单的排序大数沉底。而且getValue
方法你可以自己实现,决定使用哪几个进行排序。(我们有进行key值不存在的判断)