2016-09-29 73 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