根据对象中某个字段(seriesdata)比较排序
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 ComparatorListObject {
public static List<Map<String, String>> getSortList(List<Map<String, String>> datas) {
Collections.sort(datas, new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
if (null != o1 && null != o2 && null != o1.get("seriesdata") && null != o1.get("seriesdata")) {
int num1 = Integer.valueOf(o1.get("seriesdata"));
int num2 = Integer.valueOf(o2.get("seriesdata"));
if (num1 < num2) {
return 1;
} else if (num1 == num2) {
return 0;
} else {
return -1;
}
}
return 0;
}
});
return datas;
}
public static void main(String[] args) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map1 = new HashMap<String, String>();
map1.put("catagory", "三方存管变更");
map1.put("catagoryid", "3411225");
map1.put("seriesdata", "5");
list.add(map1);
Map<String, String> map2 = new HashMap<String, String>();
map2.put("catagory", "辅助资金户开户");
map2.put("catagoryid", "4411005");
map2.put("seriesdata", "7");
list.add(map2);
Map<String, String> map3 = new HashMap<String, String>();
map3.put("catagory", "test111");
map3.put("catagoryid", "111111");
map3.put("seriesdata", "3");
list.add(map3);
System.out.println(list);
list = getSortList(list);
System.out.println(list);
}
}
[{catagory=三方存管变更, catagoryid=3411225, seriesdata=5}, {catagory=辅助资金户开户, catagoryid=4411005, seriesdata=7}, {catagory=test111, catagoryid=111111, seriesdata=3}]
[{catagory=辅助资金户开户, catagoryid=4411005, seriesdata=7}, {catagory=三方存管变更, catagoryid=3411225, seriesdata=5}, {catagory=test111, catagoryid=111111, seriesdata=3}]