Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java 二维数组按指定列排序(一)

Java 二维数组按指定列排序(一)

作者头像
用户7886150
修改于 2020-12-14 06:08:40
修改于 2020-12-14 06:08:40
2.1K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java中的final数组 | Final arrays

Java 二维数组按指定列排序(一) 

简介: 在做项目时,需要对一个二维数组,按照指定的列进行排序。 

Java 二维数组按指定列排序(二)升序 or 降序 

效果图:  代码实现: 

    public static void main(String[] args) {

        int[][] nums = initialArray(5, 3);

        System.out.println("排序前:");

        printArr(nums);

        System.out.println("排序后:");

        // 先根据第1列比较,若相同则再比较第0列

        sortByColumn(nums, new int[] {1, 0});

        printArr(nums);

    }

    /**

     * 打印二维数组

     * @param nums 数组

     */

    private static void printArr(int[][] nums) {

        for (int i = 0; i < nums.length; i++) {

            System.out.println(Arrays.toString(nums[i]));

        }

    }

    /**

     * 构造一个row * col的二维数组

     * @param row 二维数组的行数

     * @param col 二维数组的列数

     * @return 构造的二维数组

     */

    private static int[][] initialArray(int row, int col) {

        int[][] arr = new int[row][col];

        for (int i = 0; i < row; i++) {

            for (int j = 0; j < col; j++) {

                // 0-100的随机数

                arr[i][j] = (int) (Math.random() * 100);

            }

        }

        return arr;

    }

    /**

     * 按列排序

     * @param ob 待排序的数组

     * @param order 列排序的优先级, 如:new int{1, 2} 先根据第一列比较,若相同则再比较第二列

     */

    private static void sortByColumn(int[][] ob, final int[] order) {

        Arrays.sort(ob, new Comparator<Object>() {

            public int compare(Object o1, Object o2) {

                int[] one = (int[]) o1;

                int[] two = (int[]) o2;

                for (int i = 0; i < order.length; i++) {

                    int k = order[i];

                    if (one[k] > two[k]) {

                        return 1;

                    } else if (one[k] < two[k]) {

                        return -1;

                    } else {

                        continue;

                    }

                }

                return 0;

            }

        });

    }

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
备战第16届蓝桥杯——数组题目(一二维简单)
给定一个一维数组 nums 和一个整数 k,将数组中的每个元素向右移动 k 个位置。
红目香薰
2024/11/14
940
备战第16届蓝桥杯——数组题目(一二维简单)
数组排序的实现
利用Collections.reverseOrder()方法:倒叙排列,数组倒置。
泰斗贤若如
2019/06/19
6310
(31) 剖析Arrays / 计算机程序的思维逻辑
数组是存储多个同类型元素的基本数据结构,数组中的元素在内存连续存放,可以通过数组下标直接定位任意元素,相比我们在后续章节介绍的其他容器,效率非常高。 数组操作是计算机程序中的常见基本操作,Java中有一个类Arrays,包含一些对数组操作的静态方法,本节主要就来讨论这些方法,我们先来看怎么用,然后再来看它们的实现原理。学习Arrays的用法,我们就可以避免重新发明轮子,直接使用,学习它的实现原理,我们就可以在需要的时候,自己实现它不具备的功能。 用法 toString Arrays的toString方法可
swiftma
2018/01/31
1.4K0
java二维数组试题_Java二维数组及习题总结
二维数组:就是一个由行和列组成的一个矩阵(Matrix);在这个矩阵中访问元素时,是根据元素的行角标和列角标所确定的。
全栈程序员站长
2022/09/03
7060
java二维数组试题_Java二维数组及习题总结
java 二维数组排序
排序规则: 对于n行两列的元素,先按数组的第一列进行升序排序,若某两行第一列相等,则按照第二列进一步排序。
全栈程序员站长
2022/09/06
1.1K0
java-基本程序设计结构
如果数组元素是数值型,那么多余的元素将被赋值为0 ; 如果数组元素是布尔型, 则将赋值为false。相反, 如果长度小于原始数组的长度,则只拷贝最前面的数据元素。
卢衍飞
2023/02/16
3320
[剑指]1二维数组的查找
这里用两种方法解决,第一种是前面说解题思路,第二种则是普遍的解题思路,两者的时间复杂度不同。
程序员的时光001
2020/07/13
6230
【Java宝典】——二维数组的寻宝之旅
由上面的输出结果我们可以得出:其实二维数组的本质就是一个大的一维数组array,里面包含着两个小的一维数组。由此我们可以将上面的循环打印二维数组的语句修改为如下样式:
ImAileen
2024/09/20
600
【Java宝典】——二维数组的寻宝之旅
java交换二维数组行列_java二维数组行列
培训系列AmberXie 求二维数组行列之和把二维数组 a 各行之和分别放入 b…
全栈程序员站长
2022/06/26
1.9K0
二维数组求和 练习
二维数组是一个数组的数组,它在程序中通常被用于表示矩阵或表格数据。每个元素在一个二维数组中由两个索引值确定,一个表示行,另一个表示列。以下是关于二维数组的一些基本概念和示例:
默 语
2024/11/20
590
二维数组求和 练习
搞定常被问的数组和排序算法,附面试题
数组是 Java 编程中最重要的数据结构之一,也是最基本的数据结构,Java 中的常用集合 ArrayList、HashMap 等内部的实现都使用到了数组结构。数组是只能用来存储一种类型的集合,可以通过下标访问数值中的所有元素。
架构师修炼
2020/07/17
7820
剑指Offer-二维数组中的查找
package Array; /** * 二维数组中的查找 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 */ public class Solution11 { public static void main(String[] args) { Solution11 solution11 = new Solution11();
武培轩
2018/04/18
5980
【杨辉三角】ArrayList和普通二维数组实现
前言: 小编这里有两种方法实现,但是其中一种是要有泛型,以及ArrayList和List有所了解的uu哦
用户11288949
2024/09/24
550
【杨辉三角】ArrayList和普通二维数组实现
知识改变命运 第七集(下):Java中数组的定义与使用
使用这个方法后续打印数组就更方便一些. Java 中提供了 java.util.Arrays 包, 其中包含了一些操作数组的常用方法
用户11319080
2024/10/17
800
知识改变命运 第七集(下):Java中数组的定义与使用
详解Leetcode中关于malloc模拟开辟二维数组问题,涉及二维数组的题目所给函数中的各个参数的解读
最近博主一直再刷Leetcode上有关c语言的题目,有些题目第一步就将我卡死了。为什么呢?因为题目中所给的函数里的参数的具体含义我既然都不知道是什么意思。当然在请教了一些大佬后我也顺利解决了,不然也不会有人和你们分享了,哈哈哈~ 我就已一个典型的题目来介绍吧:题目链接: 2373. 矩阵中的局部最大值
用户11029269
2024/03/19
1480
Java数组拷贝
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/219
joshua317
2021/12/24
7520
【背诵⑪】保姆级 | 零基础备赛蓝桥杯Java组|Java用sort对二维数组进行排序
命运之光
2024/04/15
1000
003-二维数组的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
单车变摩托
2019/01/10
8150
Java数组全套深入探究——进阶知识阶段5、二维数组
总篇链接:https://laoshifu.blog.csdn.net/article/details/134906408
红目香薰
2023/12/11
2370
Java数组全套深入探究——进阶知识阶段5、二维数组
剑指offer第二版(Java最优解)---二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
葆宁
2019/04/18
4870
剑指offer第二版(Java最优解)---二维数组中的查找
相关推荐
备战第16届蓝桥杯——数组题目(一二维简单)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文