Java对二维数组进行排序

这篇具有很好参考价值的文章主要介绍了Java对二维数组进行排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天刷题时需要用到二维数组的排序,奈何一下想不起具体的写法了,那就浅浅复习总结一下吧,加深一下自己的印象。

主要可以分为三种写法:

1.运用Comparator的常规写法,例如:

int[][] intervals = {{2,3},{2,9},{4,5},{3,7},{6,7},{8,9},{1,10}};
Arrays.sort(intervals, new Comparator<int[]>() {
    @Override
    public int compare(int[] o1, int[] o2) {
        if(o1[0]==o2[0]){
            return o1[1] - o2[1];
        }
        return o1[0] - o2[0];
    }
});


        上述代码提到的的o1和o2可以理解为二维数组中的任意两个一维子数组,其中o1[0]与o2[0]即为两个子数组各自第一个元素。返回值中o1[x] - o2[x] 表示升序排列,o2[x] - o1[x] 表示降序排列,x即为按照一维子数组的x索引元素进行排列。

        所以以上代码可以这样理解:将一维子数组按第0个元素进行升序排列,如果第零个元素相等,则按第一个元素升序排列。于是不难理解程序的结果如下:

1 10 
2 3 
2 9 
3 7 
4 5 
6 7 
8 9 

        另外两个方法是对此方法的简写,理解方式没有差异。

2、使用Lambda表达式的方式对Comparator比较器进行简写(注意要求在JDK1.8以上使用)

Arrays.sort(intervals, (o1, o2) -> {
    return o1[2] - o2[2];
});


3、使用Comparator.comparingInt()方法文章来源地址https://www.toymoban.com/news/detail-703994.html

Arrays.sort(intervals, Comparator.comparingInt(o -> o[2]));

到了这里,关于Java对二维数组进行排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java | 数组排序算法

    冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移到数组前面,把较大的元素移到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部升到顶部。 直接选择排序的基本思想是将指定排序位置与其他数组元素分别

    2024年02月15日
    浏览(28)
  • Java 数组常见的排序和查找算法

    2、数组 2.1、常见的算法: 排序算法: 冒泡排序算法 选择排序算法 2.2、算法实际上在 java 中已经封装好了。 排序可以调用方法。例如:java 中提供了一个数组工具类: java.util.Arrays Arrays 是一个工具类。 其中有一个 sort() 方法,可以排序。静态方法,直接使用类名调用就行。

    2024年01月17日
    浏览(46)
  • java数据结构与算法刷题-----LeetCode209. 长度最小的子数组

    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完): https://blog.csdn.net/grd_java/article/details/123063846 解题思路 代码:时间复杂度O(n).空间复杂度O(1)

    2024年01月21日
    浏览(54)
  • JavaSE进阶 | 二维数组的定义和使用、查找和排序算法

    目录 🥅二维数组 ❤️二维数组的遍历 ❤️动态初始化二维数组 🥅数组知识点总结 🥅习题练习 ❤️用数组模拟栈 ❤️模拟酒店的订房退房功能 ❤️杨辉三角 ❤️把数据存入数组,保证值各不相同 ❤️数组元素的赋值与数组复制 ❤️数组元素的反转 ❤️数组的扩容与缩

    2024年02月14日
    浏览(40)
  • 「优选算法刷题」:在排序数组中查找元素的第一个和最后个位置

    给你一个按照非递减顺序排列的整数数组  nums ,和一个目标值  target 。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值  target ,返回  [-1, -1] 。 你必须设计并实现时间复杂度为  O(log n)  的算法解决此问题。 示例 1: 示例 2: 示例 3: 二分

    2024年01月22日
    浏览(43)
  • 如何使用快速排序算法对整数数组进行就地排序?

    快速排序算法是最常用的排序算法之一,尤其是对大型列表进行排序时,大多数编程语言、库都以一种或另一种方式实现了它。在 Java 中,Arrays.sort()方法使用由 Joshua Bloch 等人编写的双枢轴 快速排序 算法对原始数据类型进行排序。这种实现为大量数据集提供了更好的性能,

    2024年02月01日
    浏览(47)
  • 【经典算法】 leetcode88.合并排序的数组(Java/C/Python3实现含注释说明,Easy)

    作者主页: 🔗进朱者赤的博客 精选专栏:🔗经典算法 作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法( 公众号同名 ) ❤️觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论,💬支持博主,记得点个大大的 关

    2024年04月22日
    浏览(40)
  • JAVA——二维数组遍历二维数组的三种方法

    目录 🍒java中二维数组的定义和赋值 🍒二维数组遍历的三种方法 🍇第一种:for循环遍历 🍇第二种方法:通过Arrays.deepToString()遍历 🍇第三种方法:通过for(   :   )遍历 二维数组其实就是特殊的一维数组; 在java中将这句话诠释得淋漓尽致; 运行截图: 运行截图: 注意

    2024年02月08日
    浏览(42)
  • Java --- 二维数组

    2.1、求元素总和       

    2024年02月12日
    浏览(36)
  • 二维数组前缀和(JAVA)

    力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 暴力 双层for循环,遍历子矩阵。 前缀和算法:

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包