„Java Pair“ klasė saugo vertę rakto ir vertės poros derinyje. Tai naudinga norint gauti dvi vertes. Šis raktų ir reikšmių derinys yra žinomas kaip kortelės.
Poros yra naudingos, kai norime, kad iš metodo būtų grąžintos dvi reikšmės. Pavyzdžiui, jei turime metodą, kuris apskaičiuoja skaičiaus kvadratinę šaknį ir norime atspausdinti skaičių su jo kvadratine šaknimi. Taigi išvestį galime atspausdinti skaičių ir jo kvadratinės šaknies deriniu (pvz., (5, 25)), naudodami poros klasę.
Java suteikia integruotą porų klasę iš Java 8.
Šiame skyriuje pamatysime, kaip naudoti „Java“ klasę „Pair“. Be to, mes sukursime savo pritaikytą porų klasę.
„Java“ porų klasė
Nuo „Java 8“ versijos „Java“ suteikia porų klasę, skirtą raktų porų derinių reikšmėms saugoti. Norėdami išsaugoti reikšmę porų derinyje, turime naudoti parametrizuotą konstruktorių, kurį pateikia javafx.util.Pair klasė.
Klasė Pair yra naudinga išsaugant vertę medžio duomenų struktūroje. Atliekant rekursijos operaciją medžio duomenų struktūroje, naudojant klasę Pair lengva perduoti vertę iš vieno mazgo į kitą mazgą. Šios reikšmės gali būti minimalios ir didžiausios mazgo reikšmės iki to mazgo. Tai neleistų žymekliui pakartotinai peržiūrėti tam tikrų kodų.
„Java“ kalboje žemėlapiai naudojami reikšmei saugoti raktų poros derinio pavidalu. Jie saugo vertę kaip eilutes ir naudoja jas kaip vieną objektą.
Norėdami įdiegti poros klasę, turime importuoti jos pirminį paketą:
import javafx.util.Pair;
Integruotoje porų klasėje naudojama tokia rakto ir vertės žyma, kaip ir Žemėlapis Java porai saugoti:
Deklaracija:
Poros klasės objektas deklaruojamas taip:
Pair p = new Pair(5 ,'Five');
Aukščiau pateikta sintaksė sukurs objektą, kurio tipas ir konstruktorius paims reikšmę 5 ir 'Penki' ir išsaugos juos porų klasėje.
Porų klasių metodai
„Java Pair“ klasė pateikia šiuos metodus:
getKey ()
Jis gauna nurodytos poros raktą ir grąžina nurodytos poros raktą. Jis deklaruojamas taip:
kupranugario python
public K getKey()
getValue()
Jis gauna nurodytos poros vertę ir grąžina poros vertę. Jis deklaruojamas taip:
public V getValue()
maišos kodas ()
Jis generuoja maišos kodą porai; šis maišos kodas apskaičiuojamas naudojant poros pavadinimą ir reikšmę. Jis nepaiso HashCode klasės ir grąžina poros maišos kodą. Jis deklaruojamas taip:
public int hashCode()
lygus ()
Jis naudojamas norint patikrinti poros lygybę su kita pora. Jei objektas nenurodytas testavimui arba yra nulinis, jis grąžins klaidingą. Pateiktos dvi poros bus laikomos lygiomis tada ir tik tada, kai jų pavadinimai ir reikšmės bus vienodos. Jis deklaruojamas taip:
public boolean equals(Object o)
Norint patikrinti lygybę su pora, reikia „-o“ argumentų objekto. Ji nepaiso lygybės klasėje Objektai ir grąžina true, jei duotoji pora yra lygi; priešingu atveju jis bus klaidingas.
toString()
kaip sukurti masyvą java
Jis naudojamas porai atstovauti kaip eilutė. Metodu toString() visada naudojamas numatytasis pavadinimas/reikšmės skyriklis='. Jis nepaiso toString klasės Object ir grąžina poros String reikšmę. Jis deklaruojamas taip:
public String toString()
Poros klasės konstruktorius
Pair klasės konstruktorius sukuria naują porą. Kaip argumentą jis laiko rakto ir poros reikšmes. Jis deklaruojamas taip:
public Pair(K key, V value)
Porų klasių tipai
„Java“ yra dviejų tipų poros klasės, kurios yra tokios:
Kodėl mums reikia poros klasės
Poros klasė naudojama norint gauti reikšmę raktų poros derinyje. Kitaip tariant, galime pasakyti, kad poros klasė pateikia metodus, kurie kartu grąžina dvi reikšmes. Gali būti daug priežasčių, kodėl naudojame poros klasę.
Toliau pateikiami keli atvejai, kai turime naudoti klasę Pair:
- Tarkime, kad norime grąžinti kelias reikšmes. Tačiau tai galime padaryti naudodami kai kurias duomenų struktūras, pvz., „Arrays“ ir „HashMap“, bet kai kartu susiduriame su kintamųjų grupe, jų abiejų grąžinimas gali būti sudėtingas. Tokiais atvejais labai pravers porų klasė.
- Jei norime atlikti matematinį veiksmą ir norime parodyti skaičių kartu su jo išvestimi, tai padarysime lengvai naudodami klasę Pair.
- Jei norime atlikti operaciją su medžio duomenų struktūra.
Poros klasės pavyzdys
Supraskime tai naudodami pagrindinį pavyzdį:
Porų klasė yra dalis JavaFX , todėl turime sukurti ir sukonfigūruoti JavaFX projektą. Žiūrėkite, kaip sukurti JavaFX projektas Eclipse .
Dabar sukurkite klasės failą pagal src aplanką.
Kuriame TestPair klasę.
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()); } }
Aukščiau pateiktoje programoje imame poros reikšmę, kurioje yra sveikojo skaičiaus rakto reikšmė ir eilutės poros reikšmė. Mes deklaruojame Pair klasę naudodami standartinę sintaksę ir spausdiname jos vertę naudodami poros klasės metodus getKey() ir getValue(). Bus rodoma ši išvestis:
Išvestis:
The key is :5 The Pair value is :Five
Individualizuota porų klasė
Jei nenorite naudoti integruotos poros klasės, galite tinkinti poros klasę naudodami Generics. Apsvarstykite toliau pateiktą pavyzdį:
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(); } }
Iš aukščiau pateikto kodo sukūrėme individualizuotos poros klasę ir išsaugome dvi reikšmes viename kintamajame ir atspausdinome.
Išvestis:
Taigi, naudodami bendruosius metodus, galime pasinaudoti poros klasės pranašumais nenaudodami JavaFX.
Supraskime jo elgesį su funkcijomis:
Suporuokite klasę su funkcijomis
Galime naudoti klasę Pair norėdami grąžinti dvi reikšmes naudodami funkciją. Norint atlikti šį procesą, funkcijos grąžinimo tipas turi būti pora. Apsvarstykite toliau pateiktą pavyzdį:
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; } }
Išvestis:
Enter Value Five Enter Key 5
Išvada:
Porų klasės yra labai naudingos norint pagerinti kodo efektyvumą. Vienas naudingas poros klasės atvejis yra išsaugoti reikšmę medžio duomenų struktūroje. Galime naudoti integruotas porų klases arba pritaikyti savo klases. Jei jie bus tinkamai naudojami, jie bus labai naudingi.