logo

Java pár

Třída Java Pair ukládá hodnotu do kombinace páru klíč-hodnota. Je to užitečné pro získání dvou hodnot. Tato kombinace párů klíč–hodnota je známá jako n-tice.

Páry jsou užitečné, když chceme, aby byly z metody vráceny dvě hodnoty. Máme-li například metodu, která počítá druhou odmocninu čísla a chceme číslo vytisknout s jeho druhou odmocninou. Můžeme tedy tisknout výstup v kombinaci čísel a jeho druhé odmocniny (např. (5, 25)) pomocí třídy pair.

Jáva poskytuje vestavěnou třídu Pair z Java 8.

V této části uvidíme, jak používat třídu Pair v Javě. Dále vytvoříme naši vlastní třídu Pair.

Párová třída v Javě

Od verze Java 8 poskytuje Java třídu Pair pro ukládání hodnot v kombinacích párů klíčů. Pro uložení hodnoty v párové kombinaci musíme použít parametrizovaný konstruktor, který poskytuje javafx.util.Pair třída.

Třída Pair je užitečná při ukládání hodnoty do stromové datové struktury. Při provádění operace rekurze na stromové datové struktuře je snadné předat hodnotu z jednoho uzlu do jiného uzlu pomocí třídy Pair. Tyto hodnoty mohou být minimální a maximální hodnoty uzlu až do tohoto uzlu. To by zabránilo tomu, aby ukazatel opakovaně navštěvoval určité kódy.

V Javě se Mapy používají k uložení hodnoty ve formě kombinace páru klíčů. Ukládají hodnotu jako n-tice a provozují je jako jeden objekt.

Abychom mohli implementovat třídu Pair, musíme importovat její nadřazený balíček:

 import javafx.util.Pair; 

Vestavěná párová třída používá následující zápis klíčů a hodnot stejně jako Mapa v Javě pro uložení páru:

 

Prohlášení:

Objekt třídy Pair je deklarován následovně:

 Pair p = new Pair(5 ,'Five'); 

Výše uvedená syntaxe vytvoří objekt typu a konstruktér bude mít hodnotu 5 a 'Pět' a uloží je do třídy Pair.

Metody párových tříd

Třída Java Pair poskytuje následující metody:

abstraktní třída vs rozhraní

getKey()

Získá klíč pro daný pár a vrátí klíč pro zadaný pár. Prohlašuje se takto:

 public K getKey() 

getValue()

Získá hodnotu pro daný pár a vrátí hodnotu páru. Prohlašuje se takto:

 public V getValue() 

hashCode()

Generuje hash kód pro pár; tento hashcode se vypočítá pomocí názvu i hodnoty dvojice. Přepíše třídu HashCode a vrátí hash kód pro pár. Prohlašuje se takto:

 public int hashCode() 

rovná se()

Používá se k testování páru na rovnost s druhým párem. Pokud objekt není určen pro testování nebo je null, vrátí hodnotu false. Uvedené dva páry budou považovány za rovnocenné tehdy a pouze tehdy, pokud jsou jejich jména a hodnoty stejné. Prohlašuje se takto:

 public boolean equals(Object o) 

K testování rovnosti s párem je zapotřebí argumentů '-o'. Přepíše hodnotu rovná se ve třídě Objects a vrátí hodnotu true, pokud se daný pár rovná; jinak vrátí hodnotu false.

toString()

Používá se k reprezentaci dvojice jako řetězec. V metodě toString() se vždy používá výchozí název/hodnota oddělovač='. Přepíše toString ve třídě Object a vrátí hodnotu String páru. Prohlašuje se takto:

 public String toString() 

Konstruktor párové třídy

Konstruktor třídy Pair vytvoří nový pár. Jako argument bere hodnoty klíče a páru. Prohlašuje se takto:

 public Pair(K key, V value) 

Typy párových tříd

V Javě existují dva typy tříd Pair, které jsou následující:

    Třída neměnných párů:Třídy Immutable Pair jsou takové třídy, ve kterých hodnotu objektu nelze změnit, pokud je jednou definována; to znamená, že nemůžeme použít metodu setter ke změně definovaných hodnot. Obecně platí, že hodnota zůstane konstantní, pokud je definována.Třída proměnlivých párů:Proměnlivé třídy nám umožňují měnit hodnotu kdykoli v programu. Pro přístup a změnu hodnoty objektu můžeme použít metody getter a setters. Hodnoty můžeme později v programu změnit, i když jsme je definovali na začátku. The pair.setValue(a,b) a pair.getValue() metody se používají k nastavení a přístupu k hodnotě objektu.

Proč potřebujeme párovou třídu

Třída páru se používá k získání hodnoty v kombinaci páru klíčů. Jinými slovy, můžeme říci, že třída pair poskytuje metody, které vracejí dvě hodnoty společně. Existuje mnoho důvodů, proč používáme třídu Pair.

Následuje několik případů, kdy potřebujeme použít třídu Pair:

  • Předpokládejme, že chceme vrátit více hodnot. Můžeme to však udělat pomocí některých datových struktur, jako jsou Arrays a HashMap, ale když máme co do činění se shlukem proměnných společně, může být vrácení obou komplikované. V takových případech velmi pomůže třída Pair.
  • Pokud chceme provést matematickou operaci a chceme zobrazit číslo spolu s jeho výstupem, uděláme to jednoduše pomocí třídy Pair.
  • Pokud chceme provést operaci na stromové datové struktuře.

Příklad třídy párů

Pojďme to pochopit na základním příkladu:

Párová třída je součástí JavaFX , takže musíme vytvořit a nakonfigurovat projekt JavaFX. Viz Jak vytvořit projekt JavaFX v Eclipse .

Nyní vytvořte soubor třídy pod src složku.

Vytváříme třídu 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()); } } 

Ve výše uvedeném programu bereme párovou hodnotu, která obsahuje celočíselnou hodnotu klíče a hodnotu páru String. Deklarujeme třídu Pair pomocí její standardní syntaxe a tiskneme její hodnotu pomocí metod getKey() a getValue() třídy pair. Zobrazí následující výstup:

Výstup:

 The key is :5 The Pair value is :Five 

Přizpůsobená třída párů

Pokud nechcete používat vestavěnou třídu Pair, můžete třídu Pair přizpůsobit pomocí Generics. Zvažte níže uvedený příklad:

CustomizedPair.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(); } } 

Z výše uvedeného kódu jsme vytvořili třídu Customized Pair a uložili dvě hodnoty do jedné proměnné a vytiskli ji.

Výstup:

 

S použitím generických metod tedy můžeme využít výhod třídy Pair bez použití JavaFX.

Pojďme pochopit jeho chování s funkcemi:

Spárovat třídu s funkcemi

Třídu Pair můžeme použít k vrácení dvou hodnot pomocí funkce. Chcete-li provést tento proces, návratový typ funkce musí být pár. Zvažte níže uvedený příklad:

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

Výstup:

dělení řetězců c++
 Enter Value Five Enter Key 5 

Závěr:

Párové třídy jsou velmi užitečné pro zlepšení efektivity kódu. Jedním z užitečných případů třídy Pair je uložení hodnoty do stromové datové struktury. Můžeme použít vestavěné párové třídy nebo přizpůsobit naše třídy. Pokud jsou správně používány, budou velmi užitečné.