Klasa Java Pair przechowuje wartość w kombinacji pary klucz-wartość. Jest to przydatne do uzyskania dwóch wartości. Ta kombinacja klucz-wartość jest nazywana krotkami.
Pary są przydatne, gdy chcemy, aby metoda zwróciła dwie wartości. Na przykład, jeśli mamy metodę obliczającą pierwiastek kwadratowy z liczby i chcemy wydrukować liczbę wraz z pierwiastkiem kwadratowym. W ten sposób możemy wydrukować wynik w postaci kombinacji liczb i pierwiastka kwadratowego (np. (5, 25)), używając klasy pary.
Jawa udostępnia wbudowaną klasę Pair z Java 8.
W tej sekcji zobaczymy, jak używać klasy Pair w Javie. Ponadto stworzymy naszą dostosowaną klasę par.
Klasa par w Javie
Od wersji Java 8 Java udostępnia klasę Pair do przechowywania wartości w kombinacjach par kluczy. Aby przechowywać wartość w kombinacji par, musimy użyć sparametryzowanego konstruktora dostarczonego przez javafx.util.Pair klasa.
Klasa Pair jest przydatna podczas przechowywania wartości w drzewiastej strukturze danych. Wykonując operację rekurencji na drzewiastej strukturze danych, można łatwo przekazać wartość z jednego węzła do drugiego za pomocą klasy Pair. Wartości te mogą być minimalnymi i maksymalnymi wartościami węzła aż do tego węzła. Zapobiegłoby to wielokrotnemu powracaniu wskaźnika do niektórych kodów.
W Javie mapy służą do przechowywania wartości w postaci kombinacji par kluczy. Przechowują wartość jako krotki i obsługują je jako pojedynczy obiekt.
Aby zaimplementować klasę Pair, musimy zaimportować jej pakiet nadrzędny:
import javafx.util.Pair;
Wbudowana klasa par używa następującej notacji klucza i wartości, podobnie jak klasa Mapa w Javie do przechowywania pary:
Deklaracja:
Obiekt klasy Pair deklaruje się w następujący sposób:
Pair p = new Pair(5 ,'Five');
Powyższa składnia utworzy obiekt typu i konstruktor przyjmie wartość 5 i „Five” i zapisze je w klasie Pair.
Metody zajęć w parach
Klasa Java Pair udostępnia następujące metody:
Weź klucz()
Pobiera klucz dla danej pary i zwraca klucz dla określonej pary. Deklaruje się to w następujący sposób:
public K getKey()
getValue()
znak na int w Javie
Pobiera wartość dla danej pary i zwraca wartość pary. Deklaruje się to w następujący sposób:
public V getValue()
hashCode()
Generuje kod skrótu dla pary; ten kod skrótu jest obliczany przy użyciu zarówno nazwy, jak i wartości pary. Zastępuje klasę HashCode i zwraca kod skrótu dla pary. Deklaruje się to w następujący sposób:
public int hashCode()
równa się()
Służy do testowania pary pod kątem równości z drugą parą. Jeśli obiekt nie zostanie określony do testowania lub ma wartość null, zwróci wartość false. Dane dwie pary zostaną uznane za równe wtedy i tylko wtedy, gdy ich nazwy i wartości są takie same. Deklaruje się to w następujący sposób:
public boolean equals(Object o)
Do sprawdzenia równości z parą potrzebny jest obiekt argumentów „-o”. Zastępuje wartości równe w klasie Obiekty i zwraca wartość true, jeśli dana para jest równa; w przeciwnym razie zwróci wartość false.
doString()
Służy do reprezentowania pary jako String. W metodzie toString() zawsze używany jest domyślny ogranicznik nazwy/wartości='. Zastępuje toString w klasie Object i zwraca wartość String z pary. Deklaruje się to w następujący sposób:
public String toString()
Konstruktor klas par
Konstruktor klasy Pair tworzy nową parę. Jako argument przyjmuje wartości klucza i pary. Deklaruje się to w następujący sposób:
public Pair(K key, V value)
Rodzaje zajęć w parach
W Javie istnieją dwa typy klas par:
Dlaczego potrzebujemy zajęć w parach
Klasa pary służy do uzyskania wartości w kombinacji pary kluczy. Innymi słowy, możemy powiedzieć, że klasa pair udostępnia metody, które zwracają razem dwie wartości. Może być wiele powodów, dla których używamy klasy Pair.
Oto kilka przypadków, w których musimy użyć klasy Pair:
- Załóżmy, że chcemy zwrócić wiele wartości. Możemy to jednak zrobić, używając niektórych struktur danych, takich jak Arrays i HashMap, ale gdy mamy do czynienia z klastrem zmiennych razem, wówczas zwrócenie obu z nich może być skomplikowane. W takich przypadkach bardzo pomocna będzie klasa Pair.
- Jeśli chcemy wykonać operację matematyczną i chcemy wyświetlić liczbę wraz z jej wynikiem, to możemy to łatwo zrobić za pomocą klasy Pair.
- Jeśli chcemy wykonać operację na drzewiastej strukturze danych.
Przykład klasy par
Rozumiemy to na podstawowym przykładzie:
Klasa par jest częścią JavaFX , dlatego musimy utworzyć i skonfigurować projekt JavaFX. Zobacz Jak tworzyć projekt JavaFX w Eclipse .
Teraz utwórz plik klasy w folderze źródło teczka.
Tworzymy klasę 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()); } }
W powyższym programie bierzemy wartość pary, która zawiera wartość klucza w postaci liczby całkowitej i wartość pary ciągu. Deklarujemy klasę Pair, używając jej standardowej składni i drukujemy jej wartość za pomocą metod getKey() i getValue() klasy pary. Wyświetli następujące dane wyjściowe:
Wyjście:
The key is :5 The Pair value is :Five
Dostosowana klasa par
Jeśli nie chcesz używać wbudowanej klasy Pair, możesz dostosować klasę Pair za pomocą Generics. Rozważ poniższy przykład:
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(); } }
Na podstawie powyższego kodu utworzyliśmy klasę Customized Pair, przechowujemy dwie wartości w jednej zmiennej i drukujemy ją.
Wyjście:
Dlatego też, stosując metody generyczne, możemy czerpać korzyści z klasy Pair bez użycia JavaFX.
Rozumiemy jego zachowanie za pomocą funkcji:
Połącz klasę z funkcjami
Możemy użyć klasy Pair, aby zwrócić dwie wartości za pomocą funkcji. Aby wykonać ten proces, zwracanym typem funkcji musi być para. Rozważ poniższy przykład:
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; } }
Wyjście:
Enter Value Five Enter Key 5
Wniosek:
Klasy par są bardzo przydatne do poprawy wydajności kodu. Jednym z przydatnych przypadków klasy Pair jest przechowywanie wartości w drzewiastej strukturze danych. Możemy skorzystać z wbudowanych klas parowych lub dostosować nasze zajęcia. Jeśli zostaną właściwie użyte, będą bardzo pomocne.