Programiranje

Pair Class Prihaja na Javo prek JavaFX?

Razred par je znan tistim, ki uporabljamo C ++ že dalj časa. Čeprav so že govorili o dodajanju v Javo kot standardnem delu SDK, je to nekoliko sporna tema. Več ljudi je to uradno zahtevalo, celo napake (4947273, 4983155 in 6229146), da bi jih dobili v Javi. V prispevku, ki postavlja vprašanje Ali želimo java.util.Pair?, Alex Miller lepo opravi pokrivanje obeh strani vprašanja.

Obstajajo že izvedbe Seznani ali a Seznanipodoben ekvivalent za Javo. Poleg neznanega števila po meri v lokalnih osnovah kode obstajajo javno dostopni primeri, kot so tisti, ki jih ponuja razred Java Pair Class, primeri v niti StackOverflow, Geneorov par Ideograph in (ne preseneča) Java Tuples's Pair. Android SDK ima tudi razred Pair. Najbolj me je presenetil obstoj razreda javafx.util.Pair JavaFX 2.0.

Ime paketa in razreda je najpogosteje predlagano za različico SDK Seznani razred je bil java.util.Pair in različica JavaFX je podobna v imenu paketa: javafx.util.Pair. Izvajanje javapa proti temu razredu v JavaFX SDK vodi do naslednjih rezultatov.

Zbrano iz javnega razreda "Pair.java" javafx.util.Pair {public K getKey (); javni V getValue (); javni javafx.util.Pair (K, V); javni java.lang.String toString (); javni int hashCode (); javna logična vrednost je enaka (java.lang.Object); } 

Kot zgoraj javap izhod kaže, da je to sorazmerno preprost razred z osnovnim parametriziranim konstruktorjem, "get" metodami za dele ključa in vrednosti Seznaniin "običajne" metode toString (), je enako (objekt), in hashCode (). Naslednji seznam kode prikazuje uporabo parametriziranega konstruktorja za zagotavljanje ključa in vrednosti za vsak primerek Seznani ki je instantiran.

 / ** * Navedite zbirko znanih parov. * * @return Zbirka znanih parov. * / zasebna statična zbirka createFamousPairs () {končna zbirka parov = nov seznam ArrayList(); pair.add (nov par ("Yin", "Yang")); pair.add (nov par ("Dejanje", "Reakcija")); pair.add (nov par ("Sol", "Poper")); pair.add (nov par ("Starsky", "Hutch")); pair.add (nov par ("Fox", "Mulder")); pair.add (nov par ("Batman", "Robin")); pair.add (nov par ("Fred Astaire", "Ginger Rogers")); pair.add (nov par ("Flotsam", "Jetsam")); pair.add (nov par ("Brutus", "Nero")); pair.add (nov par ("Tom", "Jerry")); pair.add (nov par ("Jekyll", "Hyde")); pair.add (nov par ("Holmes", "Watson")); pair.add (nov par ("Mario", "Luigi")); pair.add (nov par ("Pinky", "The Brain")); pair.add (nov par ("Wallace", "Gromit")); povratni pari; } 

Dostop do ključa in vrednosti vsakega Seznani je tudi enostavno, kot je prikazano v naslednjem vzorcu kode.

 / ** * Zapisano zbirko parov zapišite v standardni izhod. * * @param title Naslov za izhod, zapisan v standardni izhod. * @param pairToPrint Pare, ki jih je treba zapisati v standardni izhod. * / private static void writeCollectionOfPairs (končni naslov niza, končna zbirka pairToPrint) {out.println (naslov + ":"); za (končni par Par: pairToPrint) {out.println ("\ t" + pair.getKey () + "in" + pair.getValue ()); }} 

Zgornji primer je razmeroma izmišljen, vendar bi lahko trdili, da je najučinkovitejša uporaba Seznani ker je v tem konkretnem primeru resnično predstavljen koncept "para". Ena največjih pritožb glede dodajanja Seznani SDK ali uporaba na splošno pomeni, da ni imenovan dovolj natančno, da bi zajemal poslovni namen obstoja predmeta. Pravzaprav sem razmišljal o uporabi JavaFX-a Seznani razredu, ko sem napisal primer božičnega drevesa za post JavaFX 2.0 Christmas Tree (JavaFX 2.0 Shapes). Na koncu sem se odločil proti temu in uporabil bolj primerno gnezdene Koordinirati razred. Lahko pa bi ga enostavno uporabil Seznani v tem primeru. Naslednji seznam kode vsebuje ravno ta primer z ugnezdenim Koordinirati razred odstranjen in sklici nanj nadomeščeni z Seznani.

$config[zx-auto] not found$config[zx-overlay] not found