Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 22637|Svar: 1

[Kilde] Java java.util.AbstractMap.SimpleImmutableEntry for detaljer

[Kopier link]
Opslået den 10-11-2021 kl. 17:39:42 | | | |
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:







Tidligere:Java ændrer konfigurationsfilen for krigspakken
Næste:Udrul Elasticsearch-tjenesten ved hjælp af Docker
Opslået den 2021-11-11 08:48:42 |
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com