list集合中的map集合通过map的creattime键值进行时间排序
时间: 2024-05-11 22:14:08 浏览: 11
可以使用Java 8的Stream API和Comparator来对List中的Map按照creattime进行排序。
假设List中的Map的key为"creattime",value为Long类型,代码如下:
```java
List<Map<String, Long>> list = new ArrayList<>();
// 添加Map到List中
// 使用Stream API对List中的Map按照creattime进行排序
List<Map<String, Long>> sortedList = list.stream()
.sorted(Comparator.comparingLong(map -> map.get("creattime")))
.collect(Collectors.toList());
```
这样就可以按照creattime进行时间排序了。sorted方法接收一个Comparator参数,使用Comparator.comparingLong方法来指定比较的键值为"creattime",并返回一个升序排列的Stream。最后使用collect方法将Stream转换为List。
相关问题
list集合中的map集合通过map的creattime键值进行时间排序,map不止有creattime键值
,也可以根据其他键值进行排序,以下是根据creattime进行排序的示例代码:
```
import java.util.*;
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("age", 20);
map1.put("creattime", new Date(2021, 0, 1));
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("age", 25);
map2.put("creattime", new Date(2021, 3, 1));
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "Charlie");
map3.put("age", 30);
map3.put("creattime", new Date(2021, 2, 1));
list.add(map3);
// 按照creattime排序
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Date d1 = (Date) o1.get("creattime");
Date d2 = (Date) o2.get("creattime");
return d1.compareTo(d2);
}
});
// 输出排序结果
for (Map<String, Object> map : list) {
System.out.println(map);
}
}
}
```
输出结果:
```
{name=Alice, age=20, creattime=Sat Jan 01 00:00:00 CST 3921}
{name=Charlie, age=30, creattime=Mon Mar 01 00:00:00 CST 3921}
{name=Bob, age=25, creattime=Mon Apr 01 00:00:00 CST 3921}
```
list集合map集合通过时间排序
对于List集合,可以使用Collections.sort()方法进行排序,该方法可以接收一个Comparator对象作为参数,用于指定排序规则。
对于Map集合,可以将Map.Entry对象转换为List集合,然后进行排序,排序完成后再将List集合转换回Map集合。
以下是示例代码:
对List集合进行排序:
```java
List<Date> dateList = new ArrayList<>();
// 添加元素...
Collections.sort(dateList, new Comparator<Date>() {
@Override
public int compare(Date o1, Date o2) {
return o1.compareTo(o2);
}
});
```
对Map集合进行排序:
```java
Map<Date, String> dateMap = new HashMap<>();
// 添加元素...
List<Map.Entry<Date, String>> entryList = new ArrayList<>(dateMap.entrySet());
Collections.sort(entryList, new Comparator<Map.Entry<Date, String>>() {
@Override
public int compare(Map.Entry<Date, String> o1, Map.Entry<Date, String> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
Map<Date, String> sortedDateMap = new LinkedHashMap<>();
for (Map.Entry<Date, String> entry : entryList) {
sortedDateMap.put(entry.getKey(), entry.getValue());
}
```