0
votes

Java - Multirsevel sorte d'un tableau 2D d'entiers

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> xxx pré>

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}


1 commentaires

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.


3 Réponses :


0
votes

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;
}


0 commentaires

0
votes

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));
     }
}


0 commentaires

0
votes

Voici une solution à l'aide de comparateur.class xxx

imprime ceci: [[1, 2], [2, 7], [2, [2, 8], [2, 9], [4, 1], [4, 4], [5, 2], [5, 6], [5, 6], [5, 8]] >


1 commentaires

Vous pouvez soutenir le message en le marquant comme la réponse si cela vous a aidé et upvoting! Merci