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

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]】
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tacit-lxs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值