如何按字段值对对象进行排序?

时间:2016-12-06 21:03:47

标签: java

如果我有一个列列和列的ArrayList,则字段disparityRating是一个int,如何用disparityRating字段的值对列的arraylist进行排序?

我已经尝试在我的列类上实现类似的接口但是当我这样做并将比较参数更改为Column时这样:

@Override
public int compareTo(Column o) {
    return 0;
}

它出现了一个错误,说方法不会覆盖其超类的方法

我的主要课程有一个列的arraylist

Collection<Column> columns = new ArrayList<>();

所以我希望能够使用

对它们进行排序
Collections.sort(columns);

2 个答案:

答案 0 :(得分:2)

添加“implements Comparable”。

public class ... extends ... implements Comparable<Column> {

    @Override
    public int compareTo(Column o) {
       return Integer.compare(disparityRating, o.disparityRating);
    }
}

答案 1 :(得分:1)

或者你可以:

 Collections.sort(ListOfCols, new Comparator<Column>() {
                    @Override
                    public int compare(Column o1,Column o2) {
                       return o2.getRating().compareTo(o1.getRating());
                        }
                    });