精华内容
下载资源
问答
  • Java二维数组排序

    万次阅读 2019-06-29 15:46:12
    Java二维数组排序

    Java二维数组排序

    Java二维数组排序

    关于Java二维数组的排序方法之一是把二维数组放进一维数组然后试用版Arrays.sort();进行排序,排序结束后再把一维数组内容重新写入二维数组内,代码实现如下:

    为了方便,我在这里使用了随机数生成方法Math.random()进行随机数生成,依次写入二维数组内:

    import java.util.*;
    public class P11{
    	public static void main(String[] args){
    		int[][] arr=new int[5][5];
    		for(int i=0;i<arr.length;i++){
    			for (int j=0;j<arr[i].length;j++){//生成随机数【100-1000】
    				arr[i][j]=(int)(Math.random()*(1000-100+1)+100);
    			}
    		}
    		for(int i=0;i<arr.length;i++){
    			System.out.println(Arrays.toString(arr[i]));
    		}
    		System.out.println();
    		for(int i=0;i<arr.length;i++){
    			Arrays.sort(arr[i]);
    		}
    		for(int i=0;i<arr.length;i++){
    			System.out.println(Arrays.toString(arr[i]));
    		}
    		int[] temp=new int[25];
    		int k=0;
    		for(int i=0;i<arr.length;i++){
    			for(int j=0;j<arr[i].length;j++){
    				temp[k]=arr[i][j];
    				k++;
    			}
    		}
    		System.out.println();
    		for(int x:temp){
    			System.out.print(x+" ");
    		}
    		Arrays.sort(temp);
    		System.out.println();
    		for(int x:temp){
    			System.out.print(x+" ");
    		}
    		k=-1;
    		for(int i=0;i<arr.length;i++){
    			for(int j=0;j<arr[i].length;j++){
    				k++;
    				arr[i][j]=temp[k];
    			}
    		}
    		System.out.println();
    		System.out.println();
    		for(int i=0;i<arr.length;i++){
    			System.out.println(Arrays.toString(arr[i]));
    		}
    	}
    }
    

    因为使用了随机数生成的数组内容,所以每次运行数组内容都不尽相同,本次运行结果如下:

    排序结果

    展开全文
  • java二维数组排序

    2020-12-31 11:12:39
    维数组排序很简单,调用Arrays.sort(array)就可以直接进行排序。二维数组稍微复杂一些。 二维数组根据第一列排序: int[][] ts_id = new int[][] {{1,2},{99,0},{876,9},{3,100}}; Arrays.sort(ts_.

    原文链接:https://blog.csdn.net/qq_43220949/article/details/109037667

    写Leetcode第435题需要用到对二维数组的按列排序(对第二列),特此记录。

    一维数组排序很简单,调用Arrays.sort(array)就可以直接进行排序。二维数组稍微复杂一些。

     

    二维数组根据第一列排序:

    int[][] ts_id = new int[][] {{1,2},{99,0},{876,9},{3,100}};
     
    Arrays.sort(ts_id,new Comparator<int[]>() {
        public int compare(int[] o1, int[] o2) {
            return o1[0]-o2[0];
        }
    });

    其实也是用的api,使用Arrays.sort(array,new Comparator(){})

    传入比较器Comparator,比较器内部需要实现compare(o1,o2)方法,方法内部就是具体的排序细节。

    比如:二维数组根据第一列排序,就让o1[0] -o2[0],如果用 o1-o2 ,即升序;反之 o2-o1 就降序。【o1[0]就代表取第一列。】

    还可以有很多拓展,比如如果第一列相同,就根据第二列排序:

    Arrays.sort(ts_id,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];
        }
    });

     

    展开全文
  • //借助Arrays的方法对二维数组进行排序。 //参考思路: //先把二维数组使用System.arraycopy进行数组复制到一个一维数组 //然后使用sort进行排序 //最后再复制回到二维数组。 import java.util.Arrays; public ...
    package cn.sxt.Test;
    //首先定义一个5X8的二维数组,然后使用随机数填充满。
    //借助Arrays的方法对二维数组进行排序。
    //参考思路:
    //先把二维数组使用System.arraycopy进行数组复制到一个一维数组
    //然后使用sort进行排序
    //最后再复制回到二维数组。
    
    import java.util.Arrays;
    
    public class array {
        public static void main(String[] args) {
        /*
        首先定义一个一维数组长度40和二维数组5*8
        */
        	int[][] a = new int[5][8];
        	int[] b = new int[40];
        /*
        随机数存入二维数组中
        */	
          for (int i = 0;  i < 5; i++) {
        	  for (int j = 0; j < 8;j++) {
    			a[i][j] = (int)(Math.random()*100);	
    		}	
    	}
    	/*
    	增强for循环遍历二维数组a。array.toString()方法查看
    	*/
          for(int[] temp : a)
          {
        	  System.out.println(Arrays.toString(temp));
          }
          /*
          二维数组a 5行8列,用for循环把各行的元素复制到把数组中
          */
          for (int i = 0; i < 5; i++) {
          /*复制数组: System.arraycopy(源数组, 原数组开始复制下标, 目标数组, 目标数组粘贴下标, 复制长度)*/
        	  System.arraycopy(a[i], 0, b, i * 8, 8);
    	}
          System.out.println(Arrays.toString(b));
          //对一维数组b排序
          Arrays.sort(b);
          System.out.println(Arrays.toString(b));
          //把排序好的一位数组重新复制回二维数组中
          for(int i = 0; i < 5; i++)
          {
        	  System.arraycopy(b, i * 8, a[i], 0, 8);
          }
          //打印排序好的二维数组
          for(int[] temp : a)
          {
        	  System.out.println(Arrays.toString(temp));
          }  
        }
    }
    
    展开全文
  • Java 二维数组排序

    2020-05-19 08:58:30
    //定义一个二维数组,其中所包含的一维数组具有两个元素 对于一个已定义的二位数组a进行如下规则排序,首先按照每一个对应的一维数组第一个元素进行升序排序(即a[][0]),若第一个元素相等,则按照第二个元素进行升序...

    int [][]a = new int [5][2];

    //定义一个二维数组,其中所包含的一维数组具有两个元素

    对于一个已定义的二位数组a进行如下规则排序,首先按照每一个对应的一维数组第一个元素进行升序排序(即a[][0]),若第一个元素相等,则按照第二个元素进行升序排序(a[][1])。(特别注意,这里的a[][0]或者a[][1]在java中是不能这么定义的,这里只是想说明是对于某一个一维数组的第0或1个元素进行排序)

    Arrays.sort(a, 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[1]-o2[1]表示对于第二个元素进行升序排序如果为o2[1]-o1[1]则表示为降序。

    展开全文
  • 一、按数值排序var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]];arr.sort(function(x, y){return x[0] – y[0];});其实是数组依次将数组元素复制给x,y,比如首先将arr[0]赋给x,arr[1]赋给y,然后用x[0] – y[0],根据...
  • java 二维数组排序

    2021-04-18 17:23:49
    排序规则: 先按数组的第一个元素进行升序排序,若第一个元素相等,则按照第个元素进行升序排序。 使用API:Arrays.sort()(T[] a, Comparator<? super T> c),该API根据给定的比较器(设定排序方式)对指定的...
  • 文章目录方法一:重写Arrays.sort方法方法:简化版重写Arrays.sort方法 方法一:重写Arrays.sort方法 待排序数组形式int[][] array = new int[n][2],其中n为任意整数。 import java.util.Arrays; public ...
  • ***解题思路***将二维数组抽调成一维数组,再又一维数组还原成二维数组 import java.util.Arrays;//引入Arrays类 public class test {public static void main(String[] args) { int array[][]={{11,4,2},{19,21,1}...
  • 二维数组排序,按照某一列列大小对数组进行排序。二维数组的排序直接调用Arrays.sort(); 虽然不会出现编译错误,但运行时会出现以下错误提示: 说明不可以这样用,而我们又想对它排序,就可以使用Comparator来外部...
  • Java | 二维数组排序

    2021-09-15 10:35:22
    借助Arrays的方法对二维数组进行排序。 参考思路: 先把二维数组使用System.arraycopy进行数组复制到一个一维数组 然后使用sort进行排序 最后再复制回到二维数组。 代码示例 package Test; import java.lang....
  • 刚学习Java一个月,对于没东西不是很熟悉,今天在刷题时候时候,需要对多维数组中的一进行升序/降序排列,思考到这个问题,开始百度学习如何解决!!! 常用类Arrays中有个sort()方法,可以对数组进行默认的升序...
  • 运用java 实现二维数组排序 (排序要求为‘基于第一个元素排序’组合不变) 三种排序方法分别为: 选择排序,插入排序和排列排序; //选择排序 public class Sort { public static void main(String[] args) { int...
  • 文章目录二维数组Scanner案例 : 计算器排序算法变量交换排序冒泡排序选择排序查找二分法 二维数组 我们可以使用数组保存多个数据 比如我们这个教室,坐着的都是大数据14期的学生,这个教室就相当于数组,我们就是数组...
  • 前言 例子 int intervals[][] = {{4,6,5},{1,3,7},{8... System.out.println("整型二维数组排序前"); for (int i = 0; i < intervals.length; i++){ for (int j = 0; j < 3; j++){ System.out.print(interval
  • 需要是这样的: 假设有个二维数组: ...但是对于二维数组也可以使用Arrays.sort()吗?答案是肯定的,二维数组作为一个Object传入。Comparator中的为int[]。写法如下: Arrays.sort(arr,new Comparator<
  • Java二维数组排序

    2021-03-10 19:15:38
    排序规则:首先按照每个一维数组第一个元素进行升序排序,若第一个元素相等,则按照第个元素进行升序排序。 原代码 Arrays.sort(a, new Comparator<int[]>() { @Override public int compare(int[] o1, int...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,201
精华内容 7,680
关键字:

java二维数组排序sort

java 订阅