根据对象的时间倒序排序
时间: 2024-04-22 22:26:21 浏览: 188
根据对象属性将对象排序
要根据对象的时间属性进行倒序排序,你可以使用`Comparator`接口通过创建一个自定义比较器来实现。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
class MyObject {
private int id;
private Date time;
public MyObject(int id, Date time) {
this.id = id;
this.time = time;
}
public int getId() {
return id;
}
public Date getTime() {
return time;
}
@Override
public String toString() {
return "MyObject{" +
"id=" + id +
", time=" + time +
'}';
}
}
public class Main {
public static void main(String[] args) {
List<MyObject> list = new ArrayList<>();
list.add(new MyObject(1, new Date(2021, 9, 1)));
list.add(new MyObject(2, new Date(2021, 10, 1)));
list.add(new MyObject(3, new Date(2021, 8, 1)));
System.out.println("排序前:" + list);
// 使用Comparator定义比较器,根据时间属性倒序排序
Comparator<MyObject> comparator = Comparator.comparing(MyObject::getTime).reversed();
Collections.sort(list, comparator); // 根据时间属性倒序排序
System.out.println("倒序排序后:" + list);
}
}
```
在这个示例中,我们创建了一个`MyObject`类,其中包含了一个时间属性`time`。然后通过`Comparator.comparing()`方法来定义一个比较器,使用`MyObject::getTime`来指定按时间属性进行比较。通过`.reversed()`方法,我们将比较器进行倒序排列。最后,我们使用`Collections.sort()`方法对列表进行排序,并通过打印输出验证排序结果。请注意,这里使用的是`Date`类来表示时间,你可以根据你的实际需求选择适当的时间类型。
阅读全文