如何对嵌套集合进行排序,最通俗易懂的就是直接上代码

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]】
    

Guess you like

Origin blog.csdn.net/qq_37795916/article/details/115081635