1. list排序
Collections.sort(topAppAlarmList, new Comparator<Map<String, Object>>() {})
2.代码
package testJava3;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ListSortTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ListSortTest lst = new ListSortTest();
lst.main();
}
private void main() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
int[][] lvl = {{1,3,4},{5,1,7},{2,0,8},{5,0,7},{2,0,9}};
String[] lvlName = {"lvl5","lvl4","lvl3"};
for(int i=0;i<5;i++) {
Map<String, Object> mp = new HashMap<String, Object>();
for(int j=0;j<3;j++) {
mp.put(lvlName[j], lvl[i][j]);
}
list.add(mp);
}
view(list);
sort(list);
System.out.println("排序后");
view(list);
System.out.println("排序后");
view(top3(list));
}
private void view(List<Map<String, Object>> list) {
for(Map<String, Object> map:list) {
System.out.println(map);
}
}
private List<Map<String, Object>> top3(List<Map<String, Object>> list) {
List<Map<String, Object>> listsub = list.subList(0, 3);
return listsub;
}
private void sort(List<Map<String, Object>> topAppAlarmList) {
Collections.sort(topAppAlarmList, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
int lvl51 = Integer.valueOf(o1.get("lvl5").toString());
int lvl52 = Integer.valueOf(o2.get("lvl5").toString());
if(lvl51>lvl52) {
return 1;
}else if(lvl51==lvl52) {
int lvl41 = Integer.valueOf(o1.get("lvl4").toString());
int lvl42 = Integer.valueOf(o2.get("lvl4").toString());
if(lvl41>lvl42) {
return 1;
}else if(lvl41==lvl42) {
int lvl31 = Integer.valueOf(o1.get("lvl3").toString());
int lvl32 = Integer.valueOf(o2.get("lvl3").toString());
if(lvl31>lvl32) {
return 1;
}else if(lvl31==lvl32) {
return 0;
}else {
return -1;
}
}else {
return -1;
}
}else {
return -1;
}
}
});
}
}
3.运行结果
{lvl4=3, lvl5=1, lvl3=4}
{lvl4=1, lvl5=5, lvl3=7}
{lvl4=0, lvl5=2, lvl3=8}
{lvl4=0, lvl5=5, lvl3=7}
{lvl4=0, lvl5=2, lvl3=9}
排序后
{lvl4=3, lvl5=1, lvl3=4}
{lvl4=0, lvl5=2, lvl3=8}
{lvl4=0, lvl5=2, lvl3=9}
{lvl4=0, lvl5=5, lvl3=7}
{lvl4=1, lvl5=5, lvl3=7}
top后
{lvl4=3, lvl5=1, lvl3=4}
{lvl4=0, lvl5=2, lvl3=8}
{lvl4=0, lvl5=2, lvl3=9}