logo

Parell de Java

La classe Java Pair emmagatzema el valor a la combinació de parell clau-valor. És útil per obtenir dos valors. Aquesta combinació de valor-clau es coneix com a tuples.

Els parells són útils quan volem que es tornin dos valors d'un mètode. Per exemple, si tenim un mètode que calcula l'arrel quadrada d'un nombre i volem imprimir el nombre amb la seva arrel quadrada. Així, podem imprimir la sortida en una combinació de nombres i la seva arrel quadrada (p. ex., (5, 25)) utilitzant la classe parell.

Java proporciona una classe Parella integrada de Java 8.

En aquesta secció, veurem com utilitzar la classe Pair a Java. A més, crearem la nostra classe de Parella personalitzada.

Classe de parella en Java

Des de Java 8, Java proporciona una classe Pair per emmagatzemar els valors en combinacions de parells de claus. Per emmagatzemar el valor en combinació de parells, hem d'utilitzar el constructor parametritzat proporcionat per javafx.util.Pair classe.

La classe Pair és útil mentre emmagatzema el valor en una estructura de dades d'arbre. Mentre es realitza l'operació de recursivitat en una estructura de dades d'arbre, és fàcil passar valor d'un node a un altre node mitjançant la classe Pair. Aquests valors poden ser valors de nodes mínims i màxims fins a aquest node. Això evitaria que el punter tornés a visitar certs codis repetidament.

A Java, els mapes s'utilitzen per emmagatzemar el valor en forma de combinació de parells de claus. Emmagatzemen el valor com a tuples i les operen com un únic objecte.

Per implementar la classe Pair, hem d'importar el seu paquet principal:

 import javafx.util.Pair; 

La classe de parella integrada utilitza la següent notació de clau i valor igual que la Mapa en Java per emmagatzemar un parell:

 

Declaració:

L'objecte de classe Pair es declara de la manera següent:

quantes fruites hi ha
 Pair p = new Pair(5 ,'Five'); 

La sintaxi anterior crearà un objecte del tipus i el constructor prendrà el valor 5 i 'Cinc' i els emmagatzemarà a la classe Parella.

Mètodes de classe per parelles

La classe Java Pair proporciona els mètodes següents:

getKey()

Obté la clau per a la parella donada i retorna la clau per a la parella especificada. Es declara de la següent manera:

 public K getKey() 

getValue()

Obté el valor de la parella donada i retorna el valor de la parella. Es declara de la següent manera:

 public V getValue() 

hashCode()

Genera el codi hash per a la parella; aquest codi hash es calcula utilitzant tant el nom com el valor de la parella. Invalida la classe HashCode i retorna el codi hash per a la parella. Es declara de la següent manera:

 public int hashCode() 

és igual()

S'utilitza per comprovar la igualtat de la parella amb l'altra parella. Si l'objecte no s'especifica per a la prova o és nul, tornarà false. Les dues parelles donades es consideraran iguals si i només si els seus noms i valors són els mateixos. Es declara de la següent manera:

foreach bucle mecanografiat
 public boolean equals(Object o) 

Es necessita l'objecte d'arguments '-o' per comprovar la igualtat amb la parella. Invalida els iguals a la classe Objects i retorna true si la parella donada és igual; en cas contrari, tornarà fals.

toString()

S'utilitza per representar la parella com a cadena. En el mètode toString() sempre s'utilitza el delimitador predeterminat de nom/valor='. Substitueix el toString de la classe Object i retorna el valor String de la parella. Es declara de la següent manera:

 public String toString() 

Constructor de classes de parella

El constructor de la classe Pair crea un parell nou. Pren la clau i els valors de parella com a argument. Es declara de la següent manera:

 public Pair(K key, V value) 

Tipus de classes per parelles

Hi ha dos tipus de classes de parella a Java, que són les següents:

    Classe de parella immutable:Les classes de parells immutables són classes en les quals el valor de l'objecte no es pot canviar si es defineix un cop; això vol dir que no podem utilitzar el mètode setters per alterar els valors definits. Generalment, el valor es mantindrà constant si es defineix.Classe de parella mutable:Les classes mutables ens permeten alterar el valor en qualsevol moment del programa. Podem utilitzar mètodes getters i setters per accedir i alterar el valor d'un objecte. Podríem canviar els valors més endavant al programa encara que els haguéssim definit al principi. El pair.setValue(a,b) i pair.getValue() s'utilitzen mètodes per establir i accedir al valor de l'objecte.

Per què necessitem classe de parella

La classe de parell s'utilitza per obtenir el valor en una combinació de parell de claus. En altres termes, podem dir que la classe pair proporciona mètodes que retornen dos valors junts. Pot haver-hi moltes raons per les quals utilitzem la classe Parella.

Els següents són alguns casos en què hem d'utilitzar la classe Pair:

  • Suposem que volem retornar diversos valors. Tanmateix, podem fer-ho utilitzant algunes estructures de dades com Arrays i HashMap, però quan tractem amb un grup de variables juntes, tornar-les a totes dues pot ser complicat. En aquests casos, la classe de Parelles serà molt útil.
  • Si volem realitzar una operació matemàtica i volem mostrar el nombre juntament amb la seva sortida, ho fem fàcilment mitjançant la classe Pair.
  • Si volem realitzar una operació sobre una estructura de dades en arbre.

Exemple de classe de parella

Entenem-ho amb un exemple bàsic:

quadre de llista html

La classe per parelles forma part del JavaFX , així que hem de crear i configurar un projecte JavaFX. Vegeu Com crear un projecte JavaFX a Eclipse .

Ara, creeu un fitxer de classe sota el fitxer src carpeta.

Estem creant una classe TestPair.

TestPair.java:

 import javafx.util.Pair; public class TestPair { public static void main(String[] args) { Pair p = new Pair(5,'Five'); System.out.println('The key is :' + p.getKey()); System.out.println('The Pair value is :' + p.getValue()); } } 

Al programa anterior, estem prenent un valor de parella que conté un valor de clau enter i un valor de parell de cadena. Estem declarant una classe Pair utilitzant la seva sintaxi estàndard i imprimint el seu valor mitjançant el mètode getKey() i getValue() de la classe pair. Mostrarà la següent sortida:

Sortida:

 The key is :5 The Pair value is :Five 

Classe de parella personalitzada

Si no voleu utilitzar la classe Parella integrada, podeu personalitzar una classe Parella mitjançant Genèrics. Considereu l'exemple següent:

CustomizedPair.java:

cadena separada en java
 public class CustomizedPair { int key; String value; public CustomizedPair(int key, String value) //Constructor of the class { this.key = key; this.value = value; } public void print(){ System.out.println(''); } public static void main(String[] args){ CustomizedPair a = new CustomizedPair(1,'Hello'); a.print(); } } 

A partir del codi anterior, hem creat una classe de parella personalitzada i hem emmagatzemat dos valors en una sola variable i l'hem imprimit.

Sortida:

 

Per tant, utilitzant mètodes genèrics, podem aprofitar els avantatges d'una classe Pair sense utilitzar JavaFX.

Entenem el seu comportament amb funcions:

Parella classe amb funcions

Podem utilitzar una classe Pair per retornar dos valors mitjançant una funció. Per dur a terme aquest procés, el tipus de funció de retorn ha de ser un parell. Considereu l'exemple següent:

TestPair2.java:

 import java.util.Scanner; public class TestPair2 { public static void main(String[] args) { Scanner s = new Scanner(System.in); CustomizedPair a = func(s); a.print(); } public static CustomizedPair func (Scanner s){ System.out.println('Enter Value'); String key = s.next(); System.out.println('Enter Key'); int value = s.nextInt(); CustomizedPair a = new CustomizedPair(value, key); return a; } } 

Sortida:

 Enter Value Five Enter Key 5 

Conclusió:

Les classes de parella són molt útils per millorar l'eficiència del codi. Un cas útil de la classe Pair és emmagatzemar el valor a l'estructura de dades de l'arbre. Podem utilitzar classes de parelles integrades o personalitzar les nostres classes. Si s'utilitzen correctament, seran molt útils.