Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 22637|Odgovoriti: 1

[Vir] Java java.util.AbstractMap.SimpleImmutableEntry za podrobnosti

[Kopiraj povezavo]
Objavljeno 10. 11. 2021 ob 17:39:42 | | | |
Par ali par omogoča priročen način za obravnavo preprostih povezav med ključem in vrednostjo, kar je še posebej uporabno, kadar želimo iz metode vrniti dve vrednosti. JDK vsebuje notranje razrede: AbstractMap.SimpleEntry in AbstractMap.SimpleImmutableEntry


1. SimpleEntry je definiran v abstraktnem razredu AbstractMap, njegova metoda gradnje pa je podobna tisti pri Pair.

2. Razred AbstractMap vsebuje tudi gnezdeni razred, ki predstavlja nespremenljiv par: razred SimpleImmutableEntry.

/**
     * Vnos, ki ohranja nespremenljiv ključ in vrednost.  Ta razred
     * ne podpira metode <tt>setValue</tt>.  Ta razred je lahko
     * priročno v metodah, ki vračajo niti varne posnetke
     * preslikave ključ-vrednost.
     *
     * @since 1,6
     */
    javni statični razred SimpleImmutableEntry<K,V>
        implements Entry<K,V>, java.io.Serializable
    {
        zasebni statični zadnji long serialVersionUID = 7138329143949025153L;

        zasebni končni ključ K;
        zasebna končna vrednost V;

        /**
         * Ustvari vnos, ki predstavlja preslikavo iz določenega
         * ključ do določene vrednosti.
         *
         * @param ključ, ki ga predstavlja ta vnos
         * @param vrednost vrednosti, ki jo predstavlja ta vnos
         */
        public SimpleImmutableEntry(K key, V vrednost) {
            this.key = ključ;
            this.value = vrednost;
        }

        /**
         * Ustvari vnos, ki predstavlja isto preslikavo kot
         * določen vnos.
         *
         * @param vnos vnos za kopiranje
         */
        public SimpleImmutableEntry(Entry<? razširi K, ? razširi V> vnos) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * vrne ključ, ki ustreza temu vnosu.
         *
         * @return ključ, ki ustreza temu vnosu
         */
        public K getKey() {
            tipka za povratek;
        }

        /**
         * Vrne vrednost, ki ustreza temu elementu.
         *
         * @return vrednost, ki ustreza temu vnosu
         */
        public V getValue() {
            donosna vrednost;
        }

        /**
         * Nadomesti vrednost, ki ustreza temu elementu, z navedeno
         * vrednost (neobvezna operacija).  Ta implementacija preprosto zavrže
         * <tt>UnsupportedOperationException</tt>, kot ta razred implementira
         * <i>nespremenljiv</i> vnos na zemljevidu.
         *
         * @param vrednost nove vrednosti, ki se shranjuje v tem vnosu
         * @return (Ne vrne se)
         * @throws UnsupportedOperationException vedno
         */
        public V setValue(V vrednost) {
            throw new UnsupportedOperationException();
        }

        /**
         * Primerja določen objekt s tem vnosom za enakost.
         * vrne {@coderes} če je dani objekt tudi vnos na preslikavi in
         * oba vnosa predstavljata isto preslikavo.  Bolj formalno, dva
         * vnosi {@code e1} in {@code e2} predstavljata isto preslikavo
         *če<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().equals(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * To zagotavlja, da metoda {@code enako} pravilno deluje preko
         * različne implementacije vmesnika {@code Map.Entry}.
         *
         * @param o objekt, ki ga je treba primerjati za enakost s tem vnosom na zemljevidu
         * @return {@code res}, če je določen objekt enak tej preslikavi
         *vnos
         * @see #hashCode
         */
        javni boolean je enak(Objekt o) {
            če (!( o instanceof Map.Entry))
                return false;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) & eq(value, e.getValue());
        }

        /**
         * Vrne vrednost hash kode za ta vnos na preslikavi.  Zgoščevalna koda
         * elementa preslikave {@code e} je definiran kot: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * To zagotavlja, da {@code e1.enako(e2)} implicira, da
         * {@code e1.hashCode()==e2.hashCode()} za poljubna dva vnosa
         * {@code e1} in {@code e2}, kot zahteva splošni
         * pogodba {@linkObject#hashCode}.
         *
         * @return vrednost hash kode za ta vnos na preslikavi
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Vrne nizovno predstavitev tega vnosa na zemljevidu.  Ta
         * implementacija vrne nizno predstavitev tega
         * ključ vnosa, ki mu sledi znak enak ("<tt>=</tt>")
         * sledi niz, ki predstavlja vrednost tega vnosa.
         *
         * @return String predstavitev tega vnosa na zemljevidu
         */
        public String toString() {
            return key + "=" + vrednost;
        }

    }

SimpleImmutableEntry zavrže java.lang, če poskuša spremeniti vrednost, in pokliče metodo setValue.NepodprtaOperacijaIzjemaNenormalno.



Koda:







Prejšnji:Java spremeni konfiguracijsko datoteko war paketa
Naslednji:Namestitev storitve Elasticsearch z Dockerjem
Objavljeno 2021-11-11 08:48:42 |
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com