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