Как отсортировать двумерный массив 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