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.