java list数组通根据date类型字段排序
时间: 2023-11-08 18:00:32 浏览: 81
你可以使用Java中的Collections.sort(List<T> list, Comparator<? super T> c)方法对List进行排序。对于按照Date类型字段排序,可以自定义一个Comparator实现类,通过重写compare方法来定义排序规则。例如:
```java
import java.util.*;
public class DateComparator implements Comparator<Map<String, Object>> {
private String key;
public DateComparator(String key) {
this.key = key;
}
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Date d1 = (Date) o1.get(key);
Date d2 = (Date) o2.get(key);
return d1.compareTo(d2);
}
}
public class Main {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Alice");
map1.put("date", new Date(2021, 6, 1));
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("date", new Date(2021, 5, 1));
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "Charlie");
map3.put("date", new Date(2021, 4, 1));
list.add(map1);
list.add(map2);
list.add(map3);
Collections.sort(list, new DateComparator("date"));
for (Map<String, Object> map : list) {
System.out.println(map.get("name") + " " + map.get("date"));
}
}
}
```
上述代码中,我们自定义了一个DateComparator类实现了Comparator接口。在compare方法中,我们比较两个Map中的date字段来达到排序的目的。最后使用Collections.sort方法对List进行排序,可以得到按照date字段升序排列的结果。
阅读全文