Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 22637|Svar: 1

[Källa] Java java.util.AbstractMap.SimpleImmutableEntry för detaljer

[Kopiera länk]
Publicerad den 2021-11-10 17:39:42 | | | |
Par, eller par, ger ett bekvämt sätt att hantera enkla nyckel-värde-associationer, vilket är särskilt användbart när vi vill returnera två värden från en metod. JDK levereras med interna klasser: AbstractMap.SimpleEntry och AbstractMap.SimpleImmutableEntry

Användningen av tupler i Java

https://www.itsvse.com/thread-10055-1-1.html

1. SimpleEntry definieras i den abstrakta klassen AbstractMap, och dess konstruktionsmetod liknar Pair.

2. AbstractMap-klassen innehåller också en nästlad klass, som representerar ett oföränderligt par: SimpleImmutableEntry-klassen.

/**
     * En post som upprätthåller en oföränderlig nyckel och värde.  Den här klassen
     * stöder inte metoden <tt>setValue</tt>.  Denna klass kan vara
     * bekvämt i metoder som returnerar trådsäkra snapshots av
     * nyckelvärdemappningar.
     *
     * @since 1.6
     */
    offentlig statisk klass SimpleImmutableEntry<K,V>
        implements Entry<K,V>, java.io.Serializable
    {
        privat statisk slutlig lång serieVersionUID = 7138329143949025153L;

        privat slutnyckel K;
        privat slutvärde V;

        /**
         * Skapar en post som representerar en mappning från den angivna
         * nyckel till det angivna värdet.
         *
         * @param nyckeln som representeras av denna post
         * @param värdera värdet som representeras av denna post
         */
        public SimpleImmutableEntry(K-nyckel, V-värde) {
            this.key = nyckel;
            this.value = value;
        }

        /**
         * Skapar en post som representerar samma avbildning som
         * specificerad inträde.
         *
         * @param ange anteckningen för att kopiera
         */
        public SimpleImmutableEntry(Entry<? utvidgar K, ? utvidgar V> entry) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Returnerar nyckeln som motsvarar denna post.
         *
         * @return nyckeln som motsvarar denna post
         */
        public K getKey() {
            return-nyckel;
        }

        /**
         * Returnerar värdet som motsvarar denna post.
         *
         * @return värdet motsvarande denna post
         */
        public V getValue() {
            avkastningsvärde;
        }

        /**
         * Ersätter värdet som motsvarar denna post med den angivna
         * värde (valfri operation).  Denna implementation kastar helt enkelt
         * <tt>UnsupportedOperationException</tt>, som denna klass implementerar
         * en <i>oföränderlig</i> kartpost.
         *
         * @param värde nytt värde som ska lagras i denna post
         * @return (Återkommer inte)
         * @throws UnsupportedOperationException alltid
         */
        public V setValue(V-värde) {
            kasta ny UnsupportedOperationException();
        }

        /**
         * Jämför det specificerade objektet med denna post för likhet.
         * Returnerar {@codesant} om det givna objektet också är en kartpost och
         * de två posterna representerar samma avbildning.  Mer formellt, två
         * poster {@code e1} och {@code e2} representerar samma avbildning
         *om<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().equals(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * Detta säkerställer att {@code är lika med }-metoden fungerar korrekt över
         * olika implementationer av {@code Map.Entry}-gränssnittet.
         *
         * @param o-objekt som ska jämföras för likhet med denna avbildningspost
         * @return {@code sann} om det specificerade objektet är lika med denna avbildning
         *inträde
         * @see #hashCode
         */
        publik boolean equals(Objekt o) {
            om (!( o instans av Map.Entry))
                returnera falsk;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) && eq(value, e.getValue());
        }

        /**
         * Returnerar hashkodvärdet för denna kartpost.  Hashkoden
         * av en avbildningspost {@code e} definieras som: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Detta säkerställer att {@code e1.likes(e2)} innebär att
         * {@code e1.hashCode()==e2.hashCode()} för två poster
         * {@code e1} och {@code e2}, enligt generalens krav
         * kontrakt av {@linkObject#hashCode}.
         *
         * @return hashkodvärdet för denna kartpost
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (värde == null ? 0 : värde.hashKod());
        }

        /**
         * Returnerar en strängrepresentation av denna kartpost.  Denna
         * implementation returnerar strängrepresentationen av detta
         * Ingångens nyckel följt av tecken lika med ("<tt>=</tt>")
         * följt av strängrepresentationen av denna posts värde.
         *
         * @return en strängrepresentation av denna kartpost
         */
        publik String toString() {
            returnera nyckel + "=" + värde;
        }

    }

SimpleImmutableEntry kastar java.lang om den försöker ändra värdet, och anropar setValue-metoden.UnsupportedOperationExceptionAbnorm.



Kod:







Föregående:Java modifierar konfigurationsfilen för war-paketet
Nästa:Distribuera Elasticsearch-tjänsten med Docker
Publicerad 2021-11-11 08:48:42 |
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com