У меня есть многомерный массив points[10][3]
, и мне нужно отсортировать его на основе третьего столбца. Как мне это сделать? Есть и другой ответ, но я нахожу их слишком продвинутыми, может кто-нибудь объяснить это мне, как вы объясните это 5-летнему?Как отсортировать многомерный двойной массив на основе третьего столбца
ответ
Вы просто хотите использовать некоторые логические подсказки.
Предположим, что это единственный синусоидный массив и работайте над ним.
//array with some temp values
int points[][]={{5,5,16},{5,4,9},{6,7,10},{1,4,5},{1,5,2},{1,2,3},{2,1,10},{2,1,3},{5,5,2},{5,5,1}};
//Just printing my array
System.out.println("My Array :");
for(int i=0;i<10;i++)
System.out.println("{"+points[i][0]+","+points[i][1]+","+points[i][2]+"}");
//using bubble sort
for(int i=0;i<10;i++){
for(int j=i+1;j<10;j++){
//only checking the 3rd column
if(points[i][2]>points[j][2])
swap(points[i],points[j]);
}
}
System.out.println("After sorting :");
for(int i=0;i<10;i++)
System.out.println("{"+points[i][0]+","+points[i][1]+","+points[i][2]+"}");
I got the below output,
My Array :
{5,5,16}
{5,4,9}
{6,7,10}
{1,4,5}
{1,5,2}
{1,2,3}
{2,1,10}
{2,1,3}
{5,5,2}
{5,5,1}
After sorting :
{5,5,1}
{5,5,2}
{1,5,2}
{1,2,3}
{2,1,3}
{1,4,5}
{5,4,9}
{2,1,10}
{6,7,10}
{5,5,16}
Посмотрите на этом уроке: https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html, особенно раздел 'компараторы'.
Ваша структура данных для сортировки является двумерный массив, который может также рассматриваться как массив массивов (массив, который имеет массивы в качестве элементов):
// array containing 10 int[3]-arrays:
int[][] points = new int[10][3];
Если вы хотите, чтобы отсортировать 'external', ваш алгоритм сортировки должен сравнивать элементы этого массива, поэтому он должен обрабатывать элементы int[3]
, и мы хотим сравнить их по их последнему элементу (index = 2
).
Java 7 (и ниже)
Мы можем реализовать Comparator
, то есть возможность сравнить int
массивы их 3-й элемент:
Comparator<int[]> comparator = new Comparator<int[]> {
public int compare(int[] a1, int[] a2) {
return Integer.compare(a1[2], a2[2]);
}
}
Теперь мы можем использовать этот компаратор каждый раз, когда мы хотим отсортировать двумерный массив следующим образом:
Arrays.sort(points, comparator);
Java 8
Поскольку Java 8 еще проще, вам даже не нужно реализовывать Comparator
. Просто используйте лямбда-выражения, чтобы определить стратегию сравнения:
Arrays.sort(points, Comparator.comparingInt(a -> a[2]));
- 1. Как отсортировать многомерный массив на основе одного столбца в JavaScript
- 2. Как отсортировать многомерный массив по столбцу?
- 3. Как отсортировать многомерный массив?
- 4. Как отсортировать многомерный массив?
- 5. как отсортировать многомерный массив
- 6. Как отсортировать многомерный массив в JavaScript
- 7. Как отсортировать этот многомерный массив на основе notif_date_sort?
- 8. Как отсортировать этот многомерный массив
- 9. Как отсортировать массив на основе массива ввода?
- 10. Как я могу отсортировать один (или два) мерный массив (многомерный) на основе одного столбца?
- 11. Как отсортировать многомерный массив в JavaScript
- 12. Как отсортировать многомерный массив в восходящей форме?
- 13. Как отсортировать многомерный массив по-своему
- 14. Java - сортирует многомерный массив двойной
- 15. многомерный массив на основе элементов
- 16. Как отсортировать многомерный массив в swift?
- 17. Как отсортировать многомерный массив в Powershell
- 18. Как отсортировать многомерный массив по значению?
- 19. Как отсортировать многомерный массив в php?
- 20. Как отсортировать многомерный массив PHP (недавняя реализация, основанная на новостях)
- 21. Как отсортировать многомерный массив в объективе-c?
- 22. Как отсортировать многомерный массив по значению?
- 23. Как отсортировать многомерный массив в php
- 24. Как отсортировать многомерный массив по имени
- 25. как отсортировать многомерный массив в php
- 26. Как отсортировать многомерный массив по randNum
- 27. Как отсортировать многомерный массив по дате?
- 28. как отсортировать многомерный массив по внутреннему ключу
- 29. Как отсортировать многомерный массив с PHP?
- 30. Как отсортировать многомерный массив PHP по timestamp
Эта ссылка не используется для вас? http://stackoverflow.com/questions/4907683/sort-a-two-dimensional-array-based-on-one-column –