前言
刷leetcode碰到一个题要对二维List进行排序,在这卡了一会,现在找到方法了,在此以List<List< String>>为例子,做个记录。
正文
需求
有一个二维List,数组中的元素是String,即List<List< String>>。最外面List里每个元素是一个List< String>,现在要让每个List里所有String拼接为一个String,以字典序进行排序。
解决方案
我使用Arrays自带的sort方法进行,看下源代码:
public static <T> void sort(T[] a, Comparator<? super T> c) {
if (c == null) {
sort(a);
} else {
if (LegacyMergeSort.userRequested)
legacyMergeSort(a, c);
else
TimSort.sort(a, 0, a.length, c, null, 0, 0);
}
}
也就是Arrays.sort()方法第一个参数需要是一个T[],即Object数组,而List并不符合要求,这里需要先将List转为Object数组,即List<List< String>>可转换为一个List< String>数组,参考https://blog.csdn.net/huanghanqian/article/details/81078799,可以写出对应代码:
List<String> toprint[]=new ArrayList[tot.size()];
tot.toArray(toprint);
这样,toprint数组里每个元素类型都是List&#x