通过java中的索引对arraylist的arraylist进行排序

时间:2012-05-22 13:30:23

标签: java android arraylist

我有一个arraylist的arraylist,每个内部arraylist包含2个值,第一个是整数,第二个是字符串,所以基本上它看起来像:{5,some text},{12,some more}}, {3,甚至更多的文本}等,我想做的是把它排序,使它按最大整数到最小的降序排序,所以前面的例子看起来像:{12,更多文字},{ 5,一些文字},{3,甚至更多的文字},任何帮助都会提前感谢

2 个答案:

答案 0 :(得分:6)

您的数据结构实际上听起来像是“地图”。 也许你应该研究数据结构,特别是集合接口和类......

如果您仍然认为您所拥有的是“列表”,那么您应该使用正确类型的Comparator或Comparable进行Collections.sort操作

如果List是正确的,那么这是一个数据结构的解决方案;

import java.util.ArrayList;
import java.util.Collections;

public class InnerObject implements Comparable<InnerObject> {
    Integer index;
    String  name;

    public InnerObject(Integer index, String name) {
        this.index = index;
        this.name = name;
    }

    @Override
    public int compareTo(InnerObject other) {
        return index.compareTo(other.index);
    }

    @Override
    public String toString() {
        return "{" + index + "," + name + "}";
    }

    public static void main(String[] args) {
        ArrayList<InnerObject> list = new ArrayList<InnerObject>();
        list.add(new InnerObject(666, "devil"));
        list.add(new InnerObject(1, "one"));
        list.add(new InnerObject(10, "ten"));

        System.out.println("list before order: " + list);

        Collections.sort(list);

        System.out.println("list after order: " + list);

    }   
}

答案 1 :(得分:0)

如果内部列表可以包含一个具有2个属性的对象,那将更好。此对象可用于排序。