list<map>元素排序两种方法:
1、Collections.sort()
package me.zhengjie;
import org.springframework.web.bind.annotation.RequestParam;
import java.text.ParseException;
import java.util.*;
public class test {
/**
* @param args
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("监测时间", "2020-06-06");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("监测时间", "2020-06-07");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("监测时间", "2020-06-09");
list.add(map1);
list.add(map3);
list.add(map2);
//排序前
for (Map<String, Object> map : list) {
System.out.println(map.get("监测时间"));
}
Collections.sort(list, new Comparator<Map<String, Object>>(){
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
String name1 =(String)o1.get("监测时间");//name1是从你list里面拿出来的一个
String name2= (String)o2.get("监测时间"); //name1是从你list里面拿出来的第二个name
return name1.compareTo(name2);
}
});
//排序后
System.out.println("-------------------");
for (Map<String, Object> map : list) {
System.out.println(map.get("监测时间"));
}
}
}
执行结果:(正序)
2020-06-06
2020-06-09
2020-06-07
-------------------
2020-06-06
2020-06-07
2020-06-09
2、list.sort()
package me.zhengjie;
import org.springframework.web.bind.annotation.RequestParam;
import java.text.ParseException;
import java.util.*;
public class test {
/**
* @param args
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("监测时间", "2020-06-06");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("监测时间", "2020-06-07");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("监测时间", "2020-06-09");
list.add(map1);
list.add(map3);
list.add(map2);
//排序前
for (Map<String, Object> map : list) {
System.out.println(map.get("监测时间"));
}
list.sort(new Comparator<Map<String, Object>>() {
public int compare(Map<String, Object> o1, Map<String, Object> o2){
String i1 = (String)o1.get("监测时间");
String i2 = (String)o2.get("监测时间");
return i2.compareTo(i1);
}
});
//排序后
System.out.println("-------------------");
for (Map<String, Object> map : list) {
System.out.println(map.get("监测时间"));
}
}
}
执行结果:(倒序)
2020-06-06
2020-06-09
2020-06-07
-------------------
2020-06-09
2020-06-07
2020-06-06
3、list.sort() Lambda表达式
list.sort((o1,o2)->((String)o2.get("监测时间")).compareTo((String)o1.get("监测时间")));
package me.zhengjie;
import org.springframework.web.bind.annotation.RequestParam;
import java.text.ParseException;
import java.util.*;
public class test {
/**
* @param args
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("监测时间", "2020-06-06");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("监测时间", "2020-06-07");
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("监测时间", "2020-06-09");
list.add(map1);
list.add(map3);
list.add(map2);
//排序前
for (Map<String, Object> map : list) {
System.out.println(map.get("监测时间"));
}
list.sort((o1,o2)->((String)o2.get("监测时间")).compareTo((String)o1.get("监测时间")));
//排序后
System.out.println("-------------------");
for (Map<String, Object> map : list) {
System.out.println(map.get("监测时间"));
}
}
}
执行结果同上