package com.example.demo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.util.CollectionUtils;
/**
* List<Map<String ,String>>排序写法简化过程
*
* @author wuhao
*
*/
public class TestComparator {
public static void main(String[] args) {
List<Map<String ,String>> dates = new ArrayList<Map<String ,String>>();
Map<String ,String> map1 =new HashMap<String ,String>();
map1.put("date", "2021-04-05");
map1.put("count", "200");
dates.add(map1);
Map<String ,String> map2 = new HashMap<String ,String>();
map2.put("date", "2021-04-01");
map2.put("count", "100");
dates.add(map2);
Map<String ,String> map3 = new HashMap<String ,String>();
map3.put("date", "2021-04-12");
map3.put("count", "400");
dates.add(map3);
comparatorPrint4(dates);
}
/**
* 第一种方式
* @param list
*/
public static void comparatorPrint1 (List<Map<String ,String>> list) {
if(!CollectionUtils.isEmpty(list)) {
Collections.sort(list, new Comparator<Map<String ,String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
return o1.get("date").compareTo(o2.get("date"));
}
});
}
System.out.println(list);
}
/**
* 第二种方式
* @param list
*/
public static void comparatorPrint2 (List<Map<String ,String>> list) {
if(!CollectionUtils.isEmpty(list)) {
list.sort(new Comparator<Map<String ,String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
return o1.get("date").compareTo(o2.get("date"));
}
});
}
System.out.println(list);
}
/**
* 第三种方式
* @param list
*/
public static void comparatorPrint3 (List<Map<String ,String>> list) {
if(!CollectionUtils.isEmpty(list)) {
list.sort((o1,o2)->o1.get("date").compareTo(o2.get("date")));
}
System.out.println(list);
}
/**
* 第四种方式
* @param list
*/
public static void comparatorPrint4 (List<Map<String ,String>> list) {
if(!CollectionUtils.isEmpty(list)) {
list.sort(Comparator.comparing(o->o.get("date")));
}
System.out.println(list);
}
}