2015-06-27 85 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

相關問題