logo

Classe de parella en Java

En C++, tenim std::par a la biblioteca d'utilitats que és d'una utilitat immensa si volem mantenir un parell de valors junts. Estàvem buscant una classe equivalent per a parell a Java, però la classe Parell no va aparèixer fins a Java 7. JavaFX 2.2 té el javafx.util.Pair classe que es pot utilitzar per emmagatzemar una parella. Hem d'emmagatzemar els valors a Pair mitjançant el constructor parametritzat proporcionat per javafx.util.Pair classe.

Nota: Tingueu en compte que la parella s'utilitza a HashMap/TreeMap . Aquí, simplement es refereix a un parell de valors que s'emmagatzemen junts.



Mètodes proporcionats per la classe javafx.util.Pair

Sintaxi: La classe pair en el mètode Java

Pair var_name = new Pair(key, value);>
  • Parell (clau K, valor V): Crea una parella nova.
  • booleà és igual a(): S'utilitza per comparar dos parells d'objectes. Fa una comparació profunda, és a dir, compara sobre la base dels valors () que s'emmagatzemen als objectes parells.

Exemple:

java






Edith Mack Hirsch



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

>

>

Sortida:

true false>
  • String toString(): Aquest mètode retornarà la representació String de la parella.
  • K getKey(): Torna la clau de la parella.
  • V getValue(): Retorna un valor per a la parella.
  • int hashCode(): Genereu un codi hash per a la parella.

Accés als valors: Utilitzant getKey() i getValue() mètodes podem accedir als valors d'un objecte Parella.

1. getKey(): obté el primer valor.
2. getValue(): obté el segon valor

Nota: Aquí, es refereix a un parell de valors que s'emmagatzemen junts. No és com el parell que s'utilitza al mapa.

Implementació:

Java




quantes ciutats hi ha als Estats Units d'Amèrica
// Java program to implement in-built pair classes> import> javafx.util.Pair;> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >Pair p> >=>new> Pair(>10>,>'Hello Geeks!'>);> >// printing the values of key and value pair> >// separately> >System.out.println(>'The First value is :'> >+ p.getKey());> >System.out.println(>'The Second value is :'> >+ p.getValue());> >}> }>

>

>

Fem una ullada al següent problema.

Plantejament del problema : Ens donen els noms d'n alumnes amb les puntuacions corresponents obtingudes en un qüestionari. Hem de trobar l'alumne amb la màxima puntuació de la classe.

Nota: Heu de tenir Java 8 instal·lat a la vostra màquina per executar el programa següent.

Java




// Java program to find a Pair which has maximum score> // Importing required classes> import> java.util.ArrayList;> import> javafx.util.Pair;> // class> class> Test {> >// This method returns a Pair which hasmaximum score> >public> static> Pair> >getMaximum(ArrayList l)> >{> >// Assign minimum value initially> >int> max = Integer.MIN_VALUE;> >// Pair to store the maximum marks of a> >// student with its name> >Pair ans> >=>new> Pair(>''>,>0>);> >// Using for each loop to iterate array of> >// Pair Objects> >for> (Pair temp : l) {> >// Get the score of Student> >int> val = temp.getValue();> >// Check if it is greater than the previous> >// maximum marks> >if> (val>màxim) {> >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 l> >=>new> ArrayList();> >/* Create pair of name of student with their> >corresponding score and insert into the> >Arraylist */> >l.add(>new> Pair(>'Student A'>,>90>));> >l.add(>new> Pair(>'Student B'>,>54>));> >l.add(>new> Pair(>'Student C'>,>99>));> >l.add(>new> Pair(>'Student D'>,>88>));> >l.add(>new> Pair(>'Student E'>,>89>));> >// get the Pair which has maximum value> >Pair ans = getMaximum(l);> >System.out.println(ans.getKey() +>' is top scorer '> >+>'with score of '> >+ ans.getValue());> >}> }>

>

>

Sortida:

Student C is top scorer with score of 99>

Nota: És possible que el programa anterior no s'executi en un IDE en línia, feu servir un compilador fora de línia.