对String [] s的列表进行排序?
问题描述:
在Java中,我有List<String[]> myList
,我希望能够以各种方式进行排序。例如,按row[0]
或row[0]
,然后按row[1]
等进行排序,其中row[i]
为String[]
,索引号为i
。对String [] s的列表进行排序?
这样做还是Java不支持它?
答
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
查看[Comparator](https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html)中的静态方法。例如,按每个数组中的第三个元素进行排序,可以使用比较器'List list = ...; list.sort(Comparator.comparing(a - > a [2]));' –