Programmering

Pair Class Kommer du til Java via JavaFX?

Parklassen er kjent for de av oss som har brukt C ++ i lengre tid. Selv om det har vært snakk om å legge det til Java som en standard del av SDK, er det et noe kontroversielt tema. Flere mennesker har formelt bedt om det, og feil er til og med blitt arkivert (4947273, 4983155 og 6229146) for å få det til Java. I et innlegg som stiller spørsmålet Vil vi ha en java.util.Pair ?, gjør Alex Miller en fin jobb med å dekke begge sider av saken.

Det er allerede implementeringer av Par eller a Par-som tilsvarende der ute for Java. Foruten det ukjente antallet egendefinerte i lokale kodebaser, er det offentlig tilgjengelige eksempler som de som er gitt av innlegget Java Pair Class, eksempler gitt i en StackOverflow-tråd, Ideographs Generic Pair og (ingen overraskelse) Java Tuples's Pair. Android SDK har også en par-klasse. Den som har overrasket meg mest er eksistensen av JavaFX 2.0s javafx.util.Pair-klasse.

Pakken og klassenavnet som oftest blir foreslått for en SDK-versjon av Par klasse har vært java.util. par og JavaFX-versjonen er lik i pakkenavn: javafx.util. par. Å kjøre javap mot denne klassen i JavaFX SDK fører til følgende utdata.

Kompilert fra "Pair.java" offentlig klasse javafx.util.Pair {public K getKey (); offentlig V getValue (); offentlig javafx.util.Pair (K, V); offentlig java.lang.String toString (); public int hashCode (); offentlig boolsk lik (java.lang.Object); } 

Som ovenfor javap output indikerer at dette er en relativt enkel klasse med en grunnleggende parameterisert konstruktør, "get" -metoder for nøkkel- og verdidelene av Par, og "vanlige" metoder toString (), er lik (Objekt), og hashCode (). Den neste kodelisten viser ved hjelp av den parameteriserte konstruktøren for å gi nøkkelen og verdien til hver forekomst av Par det er instantiert.

 / ** * Gi en samling av berømte par. * * @return Samling av kjente par. * / privat statisk samling createFamousPairs () {final Collection par = ny ArrayList(); pair.add (nytt par ("Yin", "Yang")); pair.add (nytt par ("Action", "Reaction")); pair.add (nytt par ("Salt", "Pepper")); pair.add (nytt par ("Starsky", "Hutch")); pair.add (nytt par ("Fox", "Mulder")); pair.add (nytt par ("Batman", "Robin")); pair.add (nytt par ("Fred Astaire", "Ginger Rogers")); pair.add (nytt par ("Flotsam", "Jetsam")); pair.add (nytt par ("Brutus", "Nero")); pair.add (nytt par ("Tom", "Jerry")); pair.add (nytt par ("Jekyll", "Hyde")); pair.add (nytt par ("Holmes", "Watson")); pair.add (nytt par ("Mario", "Luigi")); pair.add (nytt par ("Pinky", "The Brain")); pair.add (nytt par ("Wallace", "Gromit")); returpar; } 

Få tilgang til nøkkelen og verdien til hver Par er også enkelt som vist i neste kodeeksempel.

 / ** * Skriv gitt samling av par til standard utgang. * * @param title Tittel for output skrevet til standard output. * @param pairToPrint Par som skal skrives til standard utdata. * / private static void writeCollectionOfPairs (final String title, final Collection pairsToPrint) {out.println (tittel + ":"); for (final Pair pair: pairsToPrint) {out.println ("\ t" + pair.getKey () + "og" + pair.getValue ()); }} 

Ovennevnte eksempel er relativt konstruert, men kan hevdes å være en mest effektiv bruk av Par fordi det i det spesielle eksemplet virkelig er et "par" -konsept som blir representert. En av de største klagene om å legge til Par til SDK eller å bruke den generelt er at den ikke er spesifikk nok til å dekke forretningsformålet for et objekts eksistens. Jeg hadde faktisk tenkt på å bruke JavaFX Par klasse da jeg skrev mitt juletreeksempel for innlegget JavaFX 2.0 Christmas Tree (JavaFX 2.0 Shapes). Jeg endte med å bestemme meg mot dette og brukte en mer passende navngitt nestet Koordinere klasse. Imidlertid kunne jeg lett brukt Par i det eksemplet. Den neste kodelisten inneholder akkurat det eksemplet med den nestede Koordinere klasse fjernet og referanser til den erstattet av Par.

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