2012-07-24 495 views
0

我認爲這可能是一個重複的問題。但找不到我的要求的答案。java - 使用集合對員工姓名列表進行排序

我有名字的列表(字符串),如

Merill, Gopi, kamal, orange, white 

我需要做的是使用集合類似下面的

Gopi, kamal, Merill, orange, white 

得到升序列表是否有可能以字母順序獲取列表?

任何人都可以請告訴如何使用集合對此進行排序嗎?

(請關閉這個questiona爲重複之前的解決方案)

+4

如果它作爲重複關閉,則可以在重複問題中找到答案。 – nhahtdh 2012-07-24 05:53:43

回答

1

我知道你嘗試使用類別進行排序,但這裏有一個簡單的方法:

public static void main(String[] args) throws ParseException { 
    String[] values = new String[] {"Some item", "another item", "1 last more", "nevermind", "this is different"}; 
    System.out.println("Before: " + Arrays.toString(values)); 
    Arrays.sort(values, new Comparator<String>() { 
     @Override 
     public int compare(String arg0, String arg1) { 
      return arg0.compareTo(arg1); 
     } 
    }); 
    System.out.println("After: " + Arrays.toString(values)); 
} 

,這是輸出:

前:一些項目,另一個項目,1最後更,沒關係,這是不同]

後:[1最後更多,某些項目,另一個項目,沒關係,這是不同]

數組首先按大小寫排序,然後大寫字母,然後小寫字母 - 字母順序

+0

嗨,亞歷克斯,是否可以按字母順序排序(a,b,c,d ...)? – user1514499 2012-07-24 06:10:02

3

你已經提到在您的文章的解決方案:

誰能告訴如何使用這個排序collectins?

使用java.util.Collections.sort(...)

The API for Collections

1

Collections.sort(通過列表)將按軟升序排列。如果你想按自己的方式排序,那麼你需要使用比較器,但這裏沒有必要這樣做。

5

您可以使用此:

Collections.sort(list, String.CASE_INSENSITIVE_ORDER) 

String.CASE_INSENSITIVE_ORDERStringComparator<String>。請注意,這不是區域意識。

+0

+1爲比較器。 – Keppil 2012-07-24 06:49:10

相關問題