基于Integer对ArrayList进行排序

时间:2015-07-17 07:20:25

标签: java android sorting arraylist

当我将数据提取到ListView中时,以相同的顺序获取数据,但是如果我想基于MemberID对数据进行排序,但是我想显示最近的数据

autoscroll

3 个答案:

答案 0 :(得分:2)

使用Collections.sort()进行排序ArrayList,有样本:

Collections.sort(membersArrayList, new Comparator<Member>(){
    public int compare(Member m1, Member m2) {
        if (m1.getMemberID() == m2.getMemberID()) {
            return 0;
        } else if (m1.getMemberID() > m2.getMemberID()) {
            return 1;
        } else {
            return -1;
        }
    }
});

答案 1 :(得分:1)

这应该有效:

Collections.sort(membersArrayList, new Comparator<Member>(){
    public int compare(Member m1, Member m2) {
        return m1.getMemberID() - m2.getMemberID(); // sort order
    }
});

注意:您应该以单数形式命名类Members,因为它是一个Member的表示。

编辑:排序顺序取决于您设置http://developer.android.com/reference/android/widget/AbsListView.html#setStackFromBottom(boolean)

的方式
  

当stack from bottom设置为true时,列表会填充其内容   从视图的底部开始。

答案 2 :(得分:1)

如果您使用Java 8进行开发,则可以使用lambda表达式:

Collections.sort(membersArrayList, 
     (m1, m2) -> (int) (m2.getMemberID() - m1.getMemberID()));