See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 22637|Vastuse: 1

[Allikas] Java java.util.AbstractMap.SimpleImmutableEntry täpsemate andmete saamiseks

[Kopeeri link]
Postitatud 2021-11-10 17:39:42 | | | |
Paar või paar pakub mugavat viisi lihtsate võtme-väärtuste seoste käsitlemiseks, mis on eriti kasulik, kui soovime tagastada kaks väärtust meetodist. JDK-l on sisemised klassid: AbstractMap.SimpleEntry ja AbstractMap.SimpleImmutableEntry


1. SimpleEntry on defineeritud abstraktses klassis AbstractMap ning selle ehitusmeetod on sarnane Pair omaga.

2. AbstractMap klass sisaldab ka pesastatud klassi, mis esindab muutumatut paari: SimpleImmutableEntry klassi.

/**
     * Kirje, mis hoiab muutumatut võtit ja väärtust.  See klass
     * ei toeta meetodit <tt>setValue</tt>.  See klass võib olla
     * mugav meetodites, mis tagastavad lõimekindlaid hetktõmmisi
     * võtme-väärtuse kaardistused.
     *
     * @since 1.6
     */
    public static klass SimpleImmutableEntry<K,V>
        implements Entry<K,V>, java.io.Serializable
    {
        privaatne staatiline lõplik pikk seriaalversioon UID = 7138329143949025153L;

        privaatne lõplik K võti;
        privaatne lõplik V väärtus;

        /**
         * Loob kirje, mis esindab määratud kaardistust
         * võti määratud väärtusele.
         *
         * @param selle kirje poolt tähistatud võti
         * @param väärtus, mida see kirje esindab
         */
        public SimpleImmutableEntry(K key, V value) {
            this.key = võti;
            this.value = väärtus;
        }

        /**
         * Loob kirje, mis esindab sama kaardistust nagu
         * täpsustatud kirje.
         *
         * @param sisesta sissekanne kopeerimiseks
         */
        public SimpleImmutableEntry(Entry<? pikendab K, ? pikendab V> entry) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Tagastab selle kirje võtme.
         *
         * @return sellele kirjele vastav võti
         */
        public K getKey() {
            tagastusvõti;
        }

        /**
         * Tagastab sellele kirjele vastava väärtuse.
         *
         * @return sellele kirjele vastav väärtus
         */
        public V getValue() {
            tagastusväärtus;
        }

        /**
         * Asendab sellele kirjele vastava väärtuse määratud väärtusega
         * väärtus (valikuline operatsioon).  See rakendus lihtsalt viskab
         * <tt>UnsupportedOperationException</tt>, nagu see klass rakendab
         * <i>muutumatu</i> kaardikirje.
         *
         * @param väärtus uus väärtus, mis salvestatakse sellesse kirjesse
         * @return (Ei naase)
         * @throws UnsupportedOperationException alati
         */
        public V setValue(V value) {
            viska uus UnsupportedOperationException();
        }

        /**
         * Võrdleb määratud objekti selle kirjega võrdsuse osas.
         * Tagastab {@codetrue}, kui antud objekt on ka kaardi kirje ja
         * need kaks kirjet esindavad sama kaardistust.  Formaalsemalt öeldes kaks
         * kirjed {@code e1} ja {@code e2} tähistavad sama kaardistust
         *kui<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().equals(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * See tagab, et {@code võrdub} meetod töötab korrektselt üle kogu
         * {@code Map.Entry} liidese erinevad rakendused.
         *
         * @param o objekti, mida võrreldakse võrdsuse osas selle kaardikirjega
         * @return {@code true}, kui määratud objekt on võrdne selle kaardistusega
         *Kanne
         * @see #hashCode
         */
        public boolean võrdub(Objekt o) {
            kui (!( o instanceof Map.Entry))
                tagasta vale;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) && eq(value, e.getValue());
        }

        /**
         * Tagastab selle kaardikirje räsikoodi väärtuse.  Räsikood
         * kaardikirje {@code e} defineeritud kujul: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * See tagab, et {@code e1.equals(e2)} tähendab, et
         * {@code e1.hashCode()==e2.hashCode()} mis tahes kahe kirje jaoks
         * {@code e1} ja {@code e2}, nagu nõuab üldine
         * leping {@linkObject#hashCode}.
         *
         * @return selle kaardikirje räsikoodi väärtus
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Tagastab selle kaardi kirje stringikujutuse.  See
         * teostus tagastab selle stringi esituse
         * sisenemise võti, millele järgneb võrdne märk ("<tt>=</tt>")
         * millele järgneb selle kirje väärtuse stringi esitus.
         *
         * @return selle kaardi kirje stringi esitust
         */
        public String toString() {
            tagastamisvõti + "=" + väärtus;
        }

    }

SimpleImmutableEntry kasutab java.lang'i, kui ta üritab väärtust muuta, kutsudes setValue meetodit.ToetamataOperationExceptionEbanormaalne.



Kood:







Eelmine:Java muudab sõjapaketi konfiguratsioonifaili
Järgmine:Paigalda Elasticsearch teenus Dockeri abil
Postitatud 2021-11-11 08:48:42 |
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com