J'essaie de déterminer comment faire une sorte de multiles d'un groupe 2D d'entiers en Java, où les premiers numéros prend la priorité.
donc un jeu de données comme celui-ci: - p> devrait renvoyer quelque chose comme ceci: - p> {1,2}
{2,7}
{2,8}
{2,9}
{4,1}
{4,4}
{5,2}
{5,6}
{5,8}
3 Réponses :
Que diriez-vous de cela:
for(int i = 0; i < arr.length; i++) { int min = i; for(int j = i; j < arr.length; j++) { if(arr[min][0] > arr[j][0]) { min = j; } } int[] temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; } for(int i = 0; i < arr.length; i++) { int min = i; for(int j = i; j < arr.length; j++) { if(arr[j][0] != arr[i][0]) break; if(arr[min][1] > arr[j][1]) min = j; } int[] temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; }
Voici un moyen de le faire:
import java.util.*; public class Test { public static void main(String []args) { Integer[][] a = { {1,2}, {2,9}, {2,7}, {2,8}, {5,6}, {5,8}, {5,2}, {4,1}, {4,4} }; Arrays.sort(a, new Comparator<Integer[]>() { public int compare(Integer[] a, Integer[] b) { int res = a[0].compareTo(b[0]); if(res!=0) return res; return a[1].compareTo(b[1]); } }); System.out.println(Arrays.deepToString(a)); } }
Voici une solution à l'aide de imprime ceci: comparateur.class code>
[[1, 2], [2, 7], [2, [2, 8], [2, 9], [4, 1], [4, 4], [5, 2], [5, 6], [5, 6], [5, 8]] CODE> P> P> >
Vous pouvez soutenir le message en le marquant comme la réponse si cela vous a aidé et upvoting! Merci
J'avais posté une réponse plus tôt, ce qui s'est avéré incorrect - mes excuses. Veuillez consulter la dernière réponse que j'ai postée.