java里的list通过对象时间排序,判空
时间: 2023-09-29 16:09:57 浏览: 148
在Java中,如果要对包含对象的List进行按时间排序并处理空对象,可以使用`Comparator`和`Collections.sort()`方法进行排序,并在比较器中处理空对象的情况。以下是一个示例:
```java
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortListByTime {
public static void main(String[] args) {
// 创建包含对象的列表
List<MyObject> objects = new ArrayList<>();
objects.add(new MyObject("object1", LocalDateTime.parse("2022-01-05T10:30:00")));
objects.add(null); // 添加一个空对象
objects.add(new MyObject("object2", LocalDateTime.parse("2022-01-05T09:00:00")));
objects.add(new MyObject("object3", LocalDateTime.parse("2022-01-05T12:15:00")));
// 使用Comparator进行排序并处理空对象
Collections.sort(objects, Comparator.nullsLast(Comparator.comparing(MyObject::getTime)));
// 打印排序后的列表
for (MyObject obj : objects) {
System.out.println(obj);
}
}
}
class MyObject {
private String name;
private LocalDateTime time;
public MyObject(String name, LocalDateTime time) {
this.name = name;
this.time = time;
}
public LocalDateTime getTime() {
return time;
}
@Override
public String toString() {
return "MyObject{" +
"name='" + name + '\'' +
", time=" + time +
'}';
}
}
```
在上述示例中,我们创建了一个包含对象的列表`objects`,其中包括了一个空对象。我们使用`Comparator.nullsLast()`方法将空对象放在排序的末尾,然后使用`Comparator.comparing()`方法指定时间属性`time`作为排序依据。最后,我们使用`Collections.sort()`方法对列表进行排序,并在打印排序后的列表时处理了空对象的情况。
请注意,上述示例中的`MyObject`类用于表示对象,其中包含了时间属性的getter方法`getTime()`。你可以根据实际情况进行修改。
阅读全文