Как отсортировать двумерный массив java

Аватар пользователя Сергей Якимович
Сергей Якимович
22 ноября 2022

Можно преобразовать в стрим чисел, отсортировать и собрать назад в массив.

int rows = 3;
int columns = 3;
int[][] arr = {{5,1,3}, {2,0,8}, {10,4,7}}; // исходный массив 3 x 3

int[] counter = {0};
int[][] sortedArr = Arrays.stream(arr)
    .flatMapToInt(Arrays::stream)
    .sorted()
    .collect(() -> new int[rows][columns],
        (a, i) -> a[counter[0] / columns][counter[0]++ % columns] = i, (a, i) -> {});

System.out.println(Arrays.deepToString(sortedArr)); 
// => [[0, 1, 2], [3, 4, 5], [7, 8, 10]]
1 0
Познакомьтесь с основами Java бесплатно