Ordene una array de pares usando Java Pair and Comparator

Dada una array de pares de enteros. La tarea es ordenar la array con respecto al segundo elemento del par.
Ejemplos: 

Input: [(1, 2), (3, 5), (2, 6), (1, 7)]
Output: [(1, 2), (3, 5), (2, 6), (1, 7)]

Input: [(10, 20), (20, 30), (5, 6), (2, 5)]
Output: [(2, 5), (5, 6), (10, 20), (20, 30)]

Acercarse: 
 

  • Almacene los pares en una array utilizando una clase de par definida por el usuario .
  • Anule el método de comparación para ordenar la array de acuerdo con el primer elemento.
  • Ordene la array según el primer elemento.

A continuación se muestra la implementación del enfoque anterior:

Java

// Java code to sort the array
// according to second element
import java.io.*;
import java.util.*;
 
// User defined Pair class
class Pair {
    int x;
    int y;
 
    // Constructor
public Pair(int x, int y)
    {
        this.x = x;
        this.y = y;
    }
}
 
// class to define user defined conparator
class Compare {
 
    static void compare(Pair arr[], int n)
    {
        // Comparator to sort the pair according to second element
        Arrays.sort(arr, new Comparator<Pair>() {
            @Override public int compare(Pair p1, Pair p2)
            {
                return p1.y - p2.y; // To compare the first element just
                                      //change the variable from p1.y - p2.y to x.
            }
        });
 
        for (int i = 0; i < n; i++) {
            System.out.print(arr[i].x + " " + arr[i].y + " ");
        }
        System.out.println();
    }
}
 
// Driver class
class GFG {
 
    // Driver code
public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
 
        // length of array
        int n = 5;
 
        // Array of Pair
        Pair arr[] = new Pair[n];
 
        arr[0] = new Pair(10, 20);
        arr[1] = new Pair(1, 2);
        arr[2] = new Pair(3, 1);
        arr[3] = new Pair(10, 8);
        arr[4] = new Pair(4, 3);
 
        Compare obj = new Compare();
 
        obj.compare(arr, n);
    }
}
Producción: 

3 1 1 2 4 3 10 8 10 20

 

Publicación traducida automáticamente

Artículo escrito por barykrg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *