Я думаю, что самый простой способ - использовать временный массив строк, поскольку у вас есть массив строк -
Пример массива:
String array[][][] = {
{
{"Hello", "World"},
{"Apple", "Orange"}
},
{
{"Zebra", "Cow"},
{"Cat", "Ball"}
},
{
{"Elephant", "Whale"},
{"Lion", "Monkey"}
}
};
Временный массив строк:
String[] tempArray = new String[array.length * array[0].length * array[0][0].length];
Заполните временный массив:
int tempIndex = 0;
for(int i=0; i<array.length; i++) {
for(int j=0; j<array[i].length; j++) {
for(int k=0; k<array[i][j].length; k++) {
System.out.println("array[" + i + "][" + j + "][" + k + "]: " + array[i][j][k]);
tempArray[tempIndex++] = array[i][j][k];
}
}
}
Это также печатает -
array[0][0][0]: Hello
array[0][0][1]: World
array[0][1][0]: Apple
array[0][1][1]: Orange
array[1][0][0]: Zebra
array[1][0][1]: Cow
array[1][1][0]: Cat
array[1][1][1]: Ball
array[2][0][0]: Elephant
array[2][0][1]: Whale
array[2][1][0]: Lion
array[2][1][1]: Monkey
Теперь, сортируйте временный массив -
Arrays.sort(tempArray);
ЗаполнитеИсходный массив с отсортированными значениями -
tempIndex = 0;
for(int i=0; i<array.length; i++) {
for(int j=0; j<array[i].length; j++) {
for(int k=0; k<array[i][j].length; k++) {
array[i][j][k] = tempArray[tempIndex++];
}
}
}
Теперь, если вы снова печатаете элементы исходного массива, он должен вывести -
array[0][0][0]: Apple
array[0][0][1]: Ball
array[0][1][0]: Cat
array[0][1][1]: Cow
array[1][0][0]: Elephant
array[1][0][1]: Hello
array[1][1][0]: Lion
array[1][1][1]: Monkey
array[2][0][0]: Orange
array[2][0][1]: Whale
array[2][1][0]: World
array[2][1][1]: Zebra