import java.util.*;
public class MyListMapSort {
public static List<Map<String, String>> listMapObjectSort(List<Map<String, Object>> sList,String sortType,String... conditions){
List<Map<String, String>> StrArr = new ArrayList<>();
for (int i = 0; i < sList.size(); i++) {
Map<String, Object> map = sList.get(i);
Map<String, String> sMap = new HashMap<>();
for(String key:map.keySet()){
System.out.println("key="+key+"and value=" +map.get(key));
sMap.put(key,""+map.get(key));
}
StrArr.add(sMap);
}
return listMapSort(StrArr,sortType,conditions);
}
public static List<Map<String, String>> listMapSort(List<Map<String, String>> sList,String sortType,String... conditions){
Collections.sort(sList, new Comparator<Map<String, String>>() {
public int compare(Map<String, String> o1, Map<String, String> o2) {
String sort1 = "";
String sort2 = "";
for (int i = 0; i < conditions.length; i++) {
sort1 += o1.get(conditions[i]);
sort2 += o2.get(conditions[i]);
}
if(sortType.equalsIgnoreCase("asc")){
return sort1.compareTo(sort2);
}else{
return sort2.compareTo(sort1);
}
}
});
return sList;
}
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("iccid", "C0191971");
map1.put("msisdn", "F31971");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("iccid", "C0191972");
map2.put("msisdn", "F31972");
Map<String, String> map3 = new HashMap<String, String>();
map3.put("iccid", "C0191973");
map3.put("msisdn", "F31973");
Map<String, String> map4 = new HashMap<String, String>();
map4.put("iccid", "C0191974");
map4.put("msisdn", "F31974");
Map<String, String> map5 = new HashMap<String, String>();
map5.put("iccid", "C0191981");
map5.put("msisdn", "F31981");
list.add(map1);
list.add(map3);
list.add(map2);
list.add(map5);
list.add(map4);
System.out.println("---------------排序前------------------");
for (Map<String, String> map : list) {
System.out.println(map);
}
list = listMapSort(list,"asc","iccid","msisdn");
System.out.println("---------------排序后 asc ------------------");
for (Map<String, String> map : list) {
System.out.println(map);
}
list = listMapSort(list,"desc","iccid","msisdn");
System.out.println("---------------排序后 desc ------------------");
for (Map<String, String> map : list) {
System.out.println(map);
}
}
}

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步