Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 22637|Răspunde: 1

[Sursă] Java java.util.AbstractMap.SimpleImmutableEntry pentru detalii

[Copiază linkul]
Postat la 2021-11-10 17:39:42 | | | |
Perechea, sau perechea, oferă o modalitate convenabilă de a gestiona asocierile simple, cheie-valoare, ceea ce este deosebit de util atunci când dorim să returnăm două valori dintr-o metodă. JDK vine cu clase interne: AbstractMap.SimpleEntry și AbstractMap.SimpleImmutableEntry


1. SimpleEntry este definit în clasa abstract AbstractMap, iar metoda sa de construcție este similară cu cea a lui Pair.

2. Clasa AbstractMap conține și o clasă imbricată, care reprezintă o pereche imuabilă: clasa SimpleImmutableEntry.

/**
     * O Intrare care menține o cheie și o valoare imuabile.  Această clasă
     * nu suportă <tt>metoda setValue</tt>.  Această clasă poate fi
     * convenabil în metode care returnează instantanee sigure la thread ale lui
     * mapări cheie-valoare.
     *
     * @since 1.6
     */
    clasa statică publică SimpleImmutableEntry<K,V>
        implements Entry<K,V>, java.io.Serializable
    {
        static privat final long serialVersionUID = 7138329143949025153L;

        cheia finală K privată;
        valoarea finală V privată;

        /**
         * Creează o intrare care reprezintă o mapare din specificatul
         * cheia valorii specificate.
         *
         * @param cheia reprezentată de această intrare
         * @param valoarea reprezentată de această intrare
         */
        public SimpleImmutableEntry(K key, V value) {
            this.key = cheie;
            this.value = value;
        }

        /**
         * Creează o intrare care reprezintă aceeași aplicație ca și
         * intrare specificată.
         *
         * @param înscrierea pentru a copia
         */
        public SimpleImmutableEntry(Entry<? extinde K, ? extinde V> entry) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Returnează cheia corespunzătoare acestei intrări.
         *
         * @return cheia corespunzătoare acestei intrări
         */
        public K getKey() {
            tasta de return;
        }

        /**
         * Returnează valoarea corespunzătoare acestei intrări.
         *
         * @return valoarea corespunzătoare acestei intrări
         */
        public V getValue() {
            returnează valoare;
        }

        /**
         * Înlocuiește valoarea corespunzătoare acestei intrări cu cea specificată
         * valoare (operațiune opțională).  Această implementare pur și simplu aruncă
         * <tt>UnsupportedOperationException</tt>, așa cum implementează această clasă
         * o intrare <i>imuabilă</i> pe hartă.
         *
         * @param valoare nouă care trebuie stocată în această intrare
         * @return (Nu revine)
         * @throws UnsupportedOperationException întotdeauna
         */
        public V setValue(V value) {
            aruncă un nou UnsupportedOperationException();
        }

        /**
         * Compară obiectul specificat cu această intrare pentru egalitate.
         * returnează {@codeadevărat} dacă obiectul dat este și o intrare pe hartă și
         * cele două intrări reprezintă aceeași aplicație.  Mai formal, două
         * intrările {@code e1} și {@code e2} reprezintă aceeași mapare
         *dacă<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().egal(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().egal(e2.getValue()))</pre>
         * Acest lucru asigură că metoda {@code egală} funcționează corect între
         * implementări diferite ale interfeței {@code Map.Entry}.
         *
         * @param o obiect de comparat pentru egalitate cu această intrare pe aplicație
         * @return {@code adevărat} dacă obiectul specificat este egal cu această aplicație
         *intrare
         * @see #hashCode
         */
        public boolean egal cu Object o) {
            dacă (!( o instanță a Map.Entry))
                returnează false;
            Hart.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) & & eq(value, e.getValue());
        }

        /**
         * Returnează valoarea codului hash pentru această intrare pe hartă.  Codul hash
         * dintr-o intrare pe hartă {@code e} este definit astfel: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Aceasta asigură că {@code e1.egal(e2)} implică că
         * {@code e1.hashCode()==e2.hashCode()} pentru orice două Intrări
         * {@code e1} și {@code e2}, conform cerințelor generalului
         * contract al lui {@linkObiect#hashCode}.
         *
         * @return valoarea codului hash pentru această intrare pe hartă
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Returnează o reprezentare String a acestei intrări pe hartă.  Acest
         * implementarea returnează reprezentarea șirurilor a acestei
         * cheia de intrare urmată de caracterul egal ("<tt>=</tt>")
         * urmată de reprezentarea șirului valorii acestei însemnări.
         *
         * @return o reprezentare String a acestei intrări pe hartă
         */
        public String toString() {
            tasta return + "=" + valoare;
        }

    }

SimpleImmutableEntry aruncă java.lang dacă încearcă să modifice valoarea, apelând metoda setValue.UnsupportedOperationExceptionAnormal.



Cod:







Precedent:Java modifică fișierul de configurare al pachetului war
Următor:Implementarea serviciului Elasticsearch folosind Docker
Postat la 2021-11-11 08:48:42 |
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com