如何按不同顺序对每列进行排序?

时间:2015-06-27 10:11:15

标签: java sorting

我有一个4列表,我想按排名对每列进行排序。我创建了一个类如下:

public static class Fruit {
String name;
int price;
int number;
String location;

public Fruit(String a, int b, int c, String d) {
    name = a;
    price = b;
    number = c;
    location = d;
}}   

我想按排名对每列进行排序,这意味着我可以先按名称排序,然后按同名行中的价格排序。另外,我想要对每列进行排序,不仅从小到大,而且按逆序排序。

我使用Collection.sort(a, new Comparator())Collections.sort(a, Collections.reverseOrder(new Comparator()))我在课程a.name.compareTo(b.name)中使用Comparator(),但是,使用Collection.sort(),它只能按照UIWebViewDelegate对所有列进行排序相同的顺序,这意味着我无法将第一列从小到大排序,然后将第二列从大到小排序。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

如果您想按名称递增和降价排序水果列表:

    List<Fruit> list = new ArrayList<>();
    // add fruits to list
    Collections.sort(list, new Comparator<Fruit>() {
        @Override
        public int compare(Fruit o1, Fruit o2) {
            int r = o1.name.compareTo(o2.name);
            if (r != 0) return r;
            return o2.price - o1.price;
        }
    });