java8 对象list 根据时间字符串 排序
时间: 2024-03-11 12:50:54 浏览: 66
可以使用Java8的Lambda表达式和Comparator接口对List进行排序,示例代码如下:
假设有一个List<MyObject> list,其中MyObject类有一个字段为时间字符串,需要按照时间字符串进行升序排序:
```
List<MyObject> list = Arrays.asList(new MyObject("2022-01-01 10:10:10"), new MyObject("2021-12-31 10:10:10"), new MyObject("2021-01-01 10:10:10"));
list.sort(Comparator.comparing(o -> LocalDateTime.parse(o.getTimeString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));
```
以上代码将按照时间字符串升序排序。
如果需要进行降序排序,只需要在comparing方法后面调用reversed方法即可:
```
list.sort(Comparator.comparing(o -> LocalDateTime.parse(o.getTimeString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).reversed());
```
其中DateTimeFormatter是用来解析时间字符串的,具体可以根据需要自行调整。
相关问题
java list根据时间字符串排序
在Java中,如果你想根据时间字符串对List进行排序,通常你需要将时间字符串转换成可以比较的时间对象,比如Date或LocalDateTime。以下是一个基本步骤:
1. 定义一个Comparator来处理时间字符串到时间对象的转换。例如,你可以创建一个函数解析时间字符串,并返回对应的日期实例。
```java
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
public class TimeComparator implements Comparator<String> {
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public int compare(String time1, String time2) {
LocalDateTime date1 = LocalDateTime.parse(time1, formatter);
LocalDateTime date2 = LocalDateTime.parse(time2, formatter);
return date1.compareTo(date2);
}
}
```
2. 使用Collections.sort()方法并传入自定义的Comparator来对List进行排序。
```java
List<String> timeStrings = ... // 时间字符串列表
Collections.sort(timeStrings, new TimeComparator());
```
这样,List中的时间字符串就会按照它们所表示的实际时间顺序排列了。
java8 jsonobject 的list 根据时间字符串 排序
假设有一个List<JsonObject> list,其中JsonObject中包含一个字段为时间字符串,需要按照时间字符串进行升序排序:
```
List<JsonObject> list = new ArrayList<>();
// 假设从某处获取到了jsonObjectList
list.sort(Comparator.comparing(o -> LocalDateTime.parse(o.get("timeString").getAsString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));
```
以上代码将按照时间字符串升序排序。
如果需要进行降序排序,只需要在comparing方法后面调用reversed方法即可:
```
list.sort(Comparator.comparing(o -> LocalDateTime.parse(o.get("timeString").getAsString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).reversed());
```
其中DateTimeFormatter是用来解析时间字符串的,具体可以根据需要自行调整。
需要注意的是,如果JsonObject中的时间字符串格式不规范,会导致解析异常,需要自行处理异常情况。
阅读全文