Java中使用lambda表达式自定义排序

  1. 对于一维数组,通常使用Arrays.sort()(默认升序)

    int[] nums = {3, 1, 4, 2};
    Arrays.sort(nums);
    
  2. 对于二维数组,可以lambda表达式实现特定的排序要求。

    • Arrays.sort()的第二个参数中,写lambda表达式
    • lambda表达式形如(a, b) -> {return a - b;},其中a, b表示数组中的元素
    • 升序/降序
      • a-b表示升序
      • b-a表示降序
    • 为了防止Integer的边界情况,可以用Integer.compare(a[0], b[0])替代a-b
    // 假设people[i]的第一个维度表示身高,第二维度表示体重
    int[][] people = {{1, 2}, {3, 4}, {5, 6}};
    
    // 希望首先按找身高降序排列,然后按体重升序排列
    Arrays.sort(people, (a, b) -> {
        if (a[0] != b[0]) 
            return b[0] - a[0];
        else 
            return a[1] - b[1];
    });
    
posted @   Frank23  阅读(475)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示