使用Long类型的对象参数对对象列表进行排序

时间:2018-06-22 20:37:20

标签: java android list

我的帖子课包含以下参数

Post:
    String PostId
    Long imestamp

List<Post> posts;

我有一个Post类型的对象列表,如何基于Post.timestamp对列表进行排序。我尝试了比较器,要求输入int类型。

2 个答案:

答案 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));