java二维数组排序代码
时间: 2025-02-01 07:13:30 浏览: 44
### Java 二维数组排序示例
在Java中,可以使用`Arrays.sort()`方法配合自定义比较器来对二维数组进行排序。下面展示如何定义一个5×8的二维数组并填充随机数值,之后按照不同条件对其进行排序。
#### 定义并初始化二维数组
先创建指定大小的二维整型数组,并利用循环结构与`Math.random()`函数为其赋予介于特定范围内的伪随机值:
```java
import java.util.Arrays;
import java.util.Random;
public class TwoDArraySortExample {
public static void main(String[] args) {
final int ROWS = 5;
final int COLS = 8;
Random rand = new Random();
// 初始化二维数组
int[][] array = new int[ROWS][COLS];
for (int i = 0; i < ROWS; ++i){
for(int j = 0; j < COLS; ++j){
array[i][j] = rand.nextInt(100); // 随机数取值区间可根据需求调整
}
}
// 打印原始数据
System.out.println("Original Array:");
printMatrix(array);
```
此部分实现了二维数组的声明、实例化以及通过嵌套for循环完成对其各元素位置上的随机赋值操作[^4]。
#### 对二维数组进行简单排序
接下来演示基于单个维度(比如首列)实施升序排列的方式:
```java
// 单一标准排序:依据第零列递增顺序重排各行
Arrays.sort(array, (row1, row2) -> Integer.compare(row1[0], row2[0]));
System.out.println("\nSorted by first column ascendingly:");
printMatrix(array);
```
这里采用了Lambda表达式的简洁语法形式替代传统匿名内部类作为Comparator接口的具体实现方式[^2]。
#### 复杂多级排序逻辑
当存在多个排序关键字时,则需构建更为复杂的比较规则链路,在遇到相同主键的情况下继续考察次级字段直至得出最终判定结果为止:
```java
// 组合条件排序:优先考虑第一列升序,其次才是第二列降序
Arrays.sort(array, (r1, r2) ->
!Objects.equals(r1[0], r2[0]) ?
Integer.compare(r1[0], r2[0]) :
Integer.compare(r2[1], r1[1])
);
System.out.println("\nComplex sorting with multiple criteria:");
printMatrix(array);
}
static void printMatrix(int[][] matrix){
for(var row : matrix){
System.out.println(Arrays.toString(row));
}
}
```
上述代码片段展示了更精细粒度下的多重属性联合排序策略——即不仅限于单一指标考量而是综合评估对象间关系从而获得更加合理有序的结果集呈现。
阅读全文
相关推荐


















