2016-09-29 81 views
0

在Java中,我有List<String[]> myList,我希望能夠以各種方式進行排序。例如,按row[0]row[0],然後按row[1]等進行排序,其中row[i]String[],索引號爲i對String [] s的列表進行排序?

這樣做還是Java不支持它?

+0

查看[Comparator](https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html)中的靜態方法。例如,按每個數組中的第三個元素進行排序,可以使用比較器'List list = ...; list.sort(Comparator.comparing(a - > a [2]));' –

回答

3

JDK1.7的一個例子。您可以在比較器實現中更改索引。

List<String[]> myList = new ArrayList<String[]>(); 

myList.add(new String[]{"a","g","x"}); 
myList.add(new String[]{"c","f","y"}); 
myList.add(new String[]{"b","d","z"}); 

Collections.sort(myList, new Comparator<String[]>() { 
    @Override 
    public int compare(String[] o1, String[] o2) { 
    return o1[0].compareTo(o2[0]); 
    } 
}); 
+0

呵呵,不知道你可以傳遞Comparators作爲參數給Collections.sort()。涼!謝謝。 – KaliMa