import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ListsUtils {
public static void sortListOfLists(List < List < String >> listOfLists) {
// first sort the inner arrays using collections.sort
for (List < String > innerList: listOfLists) {
Collections.sort(innerList);
}
// now sort by comparing the first string of each inner list using a comparator
Collections.sort(listOfLists, new ListOfStringsComparator());
}
static final class ListOfStringsComparator implements Comparator < List < String >> {
@
Override
public int compare(List < String > o1, List < String > o2) {
// do other error checks here as well... such as null. outofbounds, etc
return o1.get(0).compareTo(o2.get(0));
}
}
}
我想我只是假设您必须对字符串数组列表进行排序......这就是为什么我首先对内部数组列表进行排序,然后通过比较每个数组的第一项来对外部列表进行排序。没有阅读您在答案中的联系人。
在这种情况下,删除用于对内部列表进行排序的 for 循环,您仍然应该能够使用比较器进行排序,但与正确的索引而不是第一个元素进行比较。
Collections.sort(listOfLists, new ListOfStringListComparator());