繁体   English   中英

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

[英]How to sort each column by different order?

我有一个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()))并且在Comparator()类中使用a.name.compareTo(b.name) Comparator() ,但是,通过使用Collection.sort() ,它只能按相同顺序对所有列进行排序,这意味着我无法将第一列从小到大排序,然后将第二列从大到小排序。

有人可以帮我吗?

如果要按名称升序和价格降序对水果订单列表进行排序:

    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;
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM