我的帖子课包含以下参数
Post:
String PostId
Long imestamp
List<Post> posts;
我有一个Post类型的对象列表,如何基于Post.timestamp
对列表进行排序。我尝试了比较器,要求输入int
类型。
答案 0 :(得分:3)
只需这样写一个Comparator
:
Comparator<Post> comparator = new Comparator<Post>() {
@Override
public int compare(Post o1, Post o2) {
return Long.compare(o1.timestamp, o2.timestamp);
}
};
或者让您的Post
实现Comparable<Post>
:
class Post implements Comparable<Post> {
String PostId;
Long timestamp = 0;
@Override
public int compareTo(@NonNull Post post) {
return Long.compare(this.timestamp, post.timestamp);
}
}
答案 1 :(得分:2)
您可以使用lambda表达式并将其放在一行上
Collections.sort(posts, Comparator.comparing(Post::timestamp));