Par, eller par, giver en bekvem måde at håndtere simple nøgle-værdi-associationer på, hvilket især er nyttigt, når vi ønsker at returnere to værdier fra en metode. JDK leveres med interne klasser: AbstractMap.SimpleEntry og AbstractMap.SimpleImmutableEntry
1. SimpleEntry er defineret i den abstrakte klasse AbstractMap, og dens konstruktionsmetode ligner Pairs.
2. AbstractMap-klassen indeholder også en indlejret klasse, som repræsenterer et uforanderligt par: SimpleImmutableEntry-klassen.
/** * En post, der opretholder en uforanderlig nøgle og værdi. Denne klasse * understøtter ikke metoden <tt>setValue</tt>. Denne klasse kan være * praktisk i metoder, der returnerer trådsikre snapshots af * nøgle-værdi-mappinger. * * @since 1.6 */ offentlig statisk klasse SimpleImmutableEntry<K,V> implements Entry<K,V>, java.io.Serializable { privat statisk endelig lang serieVersionUID = 7138329143949025153L;
privat sidste K-nøgle; privat slutværdi V;
/** * Opretter en post, der repræsenterer en mapping ud fra den specificerede * nøgle til den angivne værdi. * * @param nøglen til nøglen, som denne post repræsenterer * @param værdien af værdien, som denne post repræsenterer */ public SimpleImmutableEntry(K key, V value) { this.key = nøgle; this.value = value; }
/** * Opretter en post, der repræsenterer den samme mapping som * angivet adgang. * * @param indtastning i posten for at kopiere */ public SimpleImmutableEntry(Entry<? udvider K, ? udvider V> entry) { this.key = entry.getKey(); this.value = entry.getValue(); }
/** * Returnerer nøglen, der svarer til denne post. * * @return nøglen, der svarer til denne post */ public K getKey() { return-nøgle; }
/** * Returnerer værdien svarende til denne post. * * @return værdien, der svarer til denne post */ public V getValue() { returværdi; }
/** * Erstatter værdien, der svarer til denne post, med den specificerede * værdi (valgfri operation). Denne implementering kaster simpelthen * <tt>UnsupportedOperationException</tt>, som denne klasse implementerer * en <i>uforanderlig</i> kortindgang. * * @param værdi ny værdi, der skal gemmes i denne post * @return (Vender ikke tilbage) * @throws UnsupportedOperationException altid */ public V setValue(V-værdi) { kast ny UnsupportedOperationException(); }
/** * Sammenligner det specificerede objekt med denne post for lighed. * Returnerer {@codesand} hvis det givne objekt også er en kortpost og * de to poster repræsenterer den samme afbildning. Mere formelt, to * indgange {@code e1} og {@code e2} repræsenterer den samme afbildning *hvis<pre> * (e1.getKey()==null ? * e2.getKey()==null : * e1.getKey().equals(e2.getKey())) * && * (e1.getValue()==null ? * e2.getValue()==null : * e1.getValue().equals(e2.getValue()))</pre> * Dette sikrer, at {@code er lig med}-metoden fungerer korrekt på tværs af * forskellige implementeringer af {@code Map.Entry}-grænsefladen. * * @param o objekt, der skal sammenlignes for lighed med denne kortindgang * @return {@code sand} hvis det specificerede objekt er lig med denne afbildning *indtræden * @see #hashCode */ public boolean equals(Object o) { hvis (!( o instans af Map.Entry)) return false; Map.Entry<?,?> e = (Map.Entry<?,?>)o; return eq(key, e.getKey()) && eq(value, e.getValue()); }
/** * Returnerer hashkodeværdien for denne kortpost. Hashkoden * af en kortindgang {@code e} defineres som: <pre> * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^ * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre> * Dette sikrer, at {@code e1.lige(e2)} indebærer, at * {@code e1.hashCode()==e2.hashCode()} for to poster * {@code e1} og {@code e2}, som krævet af generalen * kontrakt af {@linkObjekt#hashCode}. * * @return hashkodeværdien for denne kortpost * @see #equals */ public int hashCode() { return (nøgle == null ? 0 : key.hashCode()) ^ (værdi == null ? 0 : værdi.hashkode()); }
/** * Returnerer en strengrepræsentation af denne kortpost. Denne * implementering returnerer strengrepræsentationen af dette * indgangsnøgle efterfulgt af tegnet "<tt>equals</tt>" ("=") * efterfulgt af strengrepræsentationen af denne indgangs værdi. * * @return en strengrepræsentation af denne kortpost */ public String toString() { return key + "=" + værdi; }
} SimpleImmutableEntry kaster java.lang, hvis den forsøger at ændre værdien, og kalder setValue-metoden.UnsupportedOperationExceptionAbnorm.
Kodeks:
|