在java中如何對(duì)多維數(shù)組進(jìn)行sort

小樊
81
2024-09-20 16:59:26
欄目: 編程語言

在Java中,對(duì)多維數(shù)組進(jìn)行排序可以使用以下方法:

  1. 使用嵌套循環(huán)對(duì)數(shù)組的每個(gè)元素進(jìn)行排序。這種方法適用于一維或二維數(shù)組。例如,對(duì)一個(gè)二維整數(shù)數(shù)組進(jìn)行升序排序:
public class ArraySort {
    public static void main(String[] args) {
        int[][] arr = {{3, 2, 1}, {5, 4, 6}, {9, 8, 7}};

        // 對(duì)每一行進(jìn)行排序
        for (int i = 0; i < arr.length; i++) {
            Arrays.sort(arr[i]);
        }

        // 打印排序后的數(shù)組
        for (int[] row : arr) {
            for (int num : row) {
                System.out.print(num + " ");
            }
            System.out.println();
        }
    }
}
  1. 使用Java 8的Stream API對(duì)多維數(shù)組進(jìn)行排序。這種方法適用于一維、二維和三維數(shù)組。例如,對(duì)一個(gè)三維整數(shù)數(shù)組進(jìn)行升序排序:
import java.util.Arrays;

public class ArraySort {
    public static void main(String[] args) {
        int[][][] arr = {
            {{3, 2, 1}, {5, 4, 6}},
            {{9, 8, 7}, {6, 5, 4}},
            {{1, 2, 3}, {4, 5, 6}}
        };

        // 對(duì)每個(gè)二維數(shù)組進(jìn)行排序
        for (int[][] matrix : arr) {
            Arrays.sort(matrix, (a, b) -> Integer.compare(a[0], b[0]));
        }

        // 對(duì)每個(gè)一維數(shù)組進(jìn)行排序
        for (int[] row : arr) {
            Arrays.sort(row);
        }

        // 打印排序后的數(shù)組
        for (int[][] matrix : arr) {
            for (int[] row : matrix) {
                for (int num : row) {
                    System.out.print(num + " ");
                }
                System.out.println();
            }
            System.out.println();
        }
    }
}

注意:這些示例中的排序方法都是升序排序。如果需要降序排序,可以在比較器中使用Integer.compare(b[0], a[0])(對(duì)于一維數(shù)組)或Arrays.sort(matrix, (a, b) -> Integer.compare(b[0], a[0]))(對(duì)于二維數(shù)組)。

0