當前位置:成語大全網 - 新華字典 - java中list裏面存放map,根據map中的某兩個個字段進行排序

java中list裏面存放map,根據map中的某兩個個字段進行排序

package?com.compare.test;

import?java.util.ArrayList;

import?java.util.HashMap;

import?java.util.List;

import?java.util.Map;

public?class?Main?{

public?static?void?main(String[]?args)?{

Main?mainTest=new?Main();

mainTest.sortMap();

}

public?void?sortMap(){

List<Map<Integer,?Double>>?maps=new?ArrayList<Map<Integer,?Double>>();

for(int?i=0;i<10;i++){

HashMap<Integer,?Double>?map=new?HashMap<Integer,?Double>();

for(int?j=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(int?i=0;i<maps.size()-1;i++){

for(int?j=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));

}

}

public?Double?getValue(Map<Integer,?Double>?currentMap){

return?currentMap.get(0)+currentMap.get(1);

}

}

我采用最簡單的排序大數沈底。而且getValue

方法妳可以自己實現,決定使用哪幾個進行排序。(我們有進行key值不存在的判斷)