Clase de par en Java – Part 1

En C++, tenemos std::pair en la biblioteca de utilidades, que es de gran utilidad si queremos mantener un par de valores juntos. Estábamos buscando una clase equivalente para pair en Java, pero la clase Pair no apareció hasta Java 7. JavaFX 2.2 tiene la  clase javafx.util.Pair que se puede usar para almacenar un par. Necesitamos almacenar los valores en Pair utilizando el constructor parametrizado proporcionado por la clase javafx.util.Pair .
 
Nota: tenga en cuenta que el par <Clave, Valor> se usa en HashMap/TreeMap . Aquí, <Clave, Valor> simplemente se refiere a un par de valores que se almacenan juntos.
 

Métodos proporcionados por la clase javafx.util.Pair

  • Par (tecla K, valor V): crea un nuevo par
  • boolean equals() : se utiliza para comparar dos pares de objetos. Realiza una comparación profunda, es decir, compara sobre la base de los valores (<Clave, Valor>) que se almacenan en los objetos de par.
     
    Ejemplo:

    Pair p1 = new Pair(3,4);
    Pair p2 = new Pair(3,4);
    Pair p3 = new Pair(4,4);
    System.out.println(p1.equals(p2) + “ ” + p2.equals(p3));

    Salida:
    verdadero falso

  •  

  • String toString() : este método devolverá la representación de string del par.
  • K getKey() : Devuelve la clave del par.
  • V getValue() : Devuelve valor para el par.
  • int hashCode() : genera un código hash para el par.
  •  

    Echemos un vistazo al siguiente problema.
    Planteamiento del problema: Nos dan los nombres de n estudiantes con sus correspondientes puntuaciones obtenidas en un cuestionario. Necesitamos encontrar al alumno con la máxima puntuación en la clase.

    Nota: debe tener Java 8 instalado en su máquina para poder ejecutar el siguiente programa.

    /* Java program to find a Pair which has maximum score*/
    import javafx.util.Pair;
    import java.util.ArrayList;
      
    class Test
    {
        /* This method returns a Pair which hasmaximum score*/
        public static Pair <String,Integer>
                  getMaximum(ArrayList < Pair <String,Integer> > l)
        {
            // Assign minimum value initially
            int max = Integer.MIN_VALUE;
      
            // Pair to store the maximum marks of a 
            // student with its name
            Pair <String, Integer> ans = 
                             new Pair <String, Integer> ("", 0);
      
            // Using for each loop to iterate array of 
            // Pair Objects
            for (Pair <String,Integer> temp : l)
            {
                // Get the score of Student
                int val = temp.getValue();
      
                // Check if it is greater than the previous 
                // maximum marks
                if (val > max)
                {
                    max = val;  // update maximum
                    ans = temp; // update the Pair
                }
            }
            return ans;
        }
      
        // Driver method to test above method
        public static void main (String[] args)
        {
             int n = 5;//Number of Students
      
            //Create an Array List
            ArrayList <Pair <String,Integer> > l =
                      new ArrayList <Pair <String,Integer> >();
      
            /*  Create pair of name of student  with their
                corresponding score and insert into the
                Arraylist */
            l.add(new Pair <String,Integer> ("Student A", 90));
            l.add(new Pair <String,Integer> ("Student B", 54));
            l.add(new Pair <String,Integer> ("Student C", 99));
            l.add(new Pair <String,Integer> ("Student D", 88));
            l.add(new Pair <String,Integer> ("Student E", 89));
      
            // get the Pair which has maximum value
            Pair <String,Integer> ans = getMaximum(l);
      
            System.out.println(ans.getKey() + " is top scorer " +
                              "with score of " + ans.getValue());
        }
    }

    Salida :

Student C is top scorer with score of 99

Nota : es posible que el programa anterior no se ejecute en un IDE en línea, utilice un compilador fuera de línea.

 
Referencias: https://docs.oracle.com/javafx/2/api/javafx/util/Pair.html
 

Este artículo es una contribución de Chirag Agarwal . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *