2015-06-27 83 views
0

我有一个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),但是,通过使用Collection.sort(),它只能排序全部由相同的顺序,这意味着我不能在第一列从小到大进行排序,然后进行排序的列第二列从大到小。

请问有人能帮我吗?

回答

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

谢谢您的帮助=) – Pelican

相关问题