Innanzitutto non serve PriorityQueue (nemmeno altre collezioni)! Poi comunque dovresti precisare di che tipo è l'array, int[][]? oppure Integer[][]? O Object[][] (e magari in ogni riga ci sono dati differenti es. Integer e Long)?Originariamente inviato da Donovant
L'ordinamento deve essere fatto rispetto al secondo valore di ogni riga quindi ad esempio M[x][1]
Comunque basta solo usare sort() di Arrays specificando un apposito Comparator. Per essere più chiaro, ecco l'esempio supponendo che l'array sia int[][].
codice:import java.util.*; public class Prova { public static void main(String[] args) { int[][] dati = { { 1, 5 }, { 3, 10 }, { 2, 7 }, { 7, 2 } }; Arrays.sort(dati, new MatrixColumn1Comparator()); for (int[] d : dati) { System.out.println(d[0] + " - " + d[1]); } } } class MatrixColumn1Comparator implements Comparator<int[]> { public int compare(int[] a, int[] b) { if (a[1] > b[1]) { return +1; } else if (a[1] < b[1]) { return -1; } else { return 0; } } }

Rispondi quotando