1. 如何对嵌套集合进行排序
-
Comparator
强行对某个对象 collection 进行整体排序的比较函数。可以将 Comparator 传递给 sort 方法:
- Collections.sort
- Arrays.sort
从而允许在排序顺序上实现精确控制。还可以使用 Comparator 来控制某些数据结构(如有序 set或有序映射)的顺序,或者为那些没有自然顺序的对象 collection 提供排序。
package com.huawei.java.main; import org.junit.Test; import java.util.*; public class TestDemo { @Test public void test1() { List<ArrayList<Integer>> arrayLists = new ArrayList<>(); ArrayList<Integer> list = new ArrayList<>(); list.add(4); list.add(7); arrayLists.add(list); ArrayList<Integer> list2 = new ArrayList<>(); list2.add(3); list2.add(6); arrayLists.add(list2); ArrayList<Integer> list3 = new ArrayList<>(); list3.add(4); list3.add(5); arrayLists.add(list3); //1.装载集合【[4,7][3,6][4,5]】 Comparator<ArrayList<Integer>> myComparator = new Comparator<ArrayList<Integer>>() { @Override public int compare(ArrayList<Integer> o1, ArrayList<Integer> o2) { //2.优先比较第一个元素,第一个元素相等在比较第二个元素 int num1 = o1.get(0)-(o2.get(0)); //升序排列 int num2 = num1==0?o1.get(1).compareTo(o2.get(1)):num1; return num2; } }; //3.调用 Collections.sort(arrayLists, myComparator); //4.遍历 for (ArrayList<Integer> arrayList : arrayLists) { for (Integer integer : arrayList) { System.out.print(integer); } } } } //结果:【[3,6][4,5][4,7]】