Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 22637|Vastaus: 1

[Lähde] Java java.util.AbstractMap.SimpleImmutableEntry lisätietoja varten

[Kopioi linkki]
Julkaistu 2021-11-10 klo 17:39:42 | | | |
Pari tai pari tarjoaa kätevän tavan käsitellä yksinkertaisia avain-arvo-assosiaatioita, mikä on erityisen hyödyllistä, kun haluamme palauttaa kaksi arvoa metodista. JDK:ssa on sisäisiä luokat: AbstractMap.SimpleEntry ja AbstractMap.SimpleImmutableEntry


1. SimpleEntry määritellään abstraktissa luokassa AbstractMap, ja sen rakentamismenetelmä on samankaltainen kuin Pairissa.

2. AbstractMap-luokka sisältää myös sisäkkäisen luokan, joka edustaa muuttumatonta paria: SimpleImmutableEntry-luokkaa.

/**
     * Merkintä, joka säilyttää muuttumattoman avaimen ja arvon.  Tämä luokka
     * ei tue <tt>metodia setValue</tt>.  Tämä luokka saattaa olla
     * kätevä menetelmissä, jotka palauttavat säiketurvallisia tilannekuvia
     * Avain-arvojen kartoitukset.
     *
     * @since 1.6
     */
    julkinen staattinen luokka SimpleImmutableEntry<K,V>
        toteuttaa Entry<K,V>, java.io.Serializable
    {
        yksityinen staattinen loppupitkä sarjaVersionUID = 7138329143949025153L;

        yksityinen viimeinen K-avain;
        yksityinen lopullinen V-arvo;

        /**
         * Luo merkinnän, joka edustaa määritellystä kartoituksesta
         * avain määriteltyyn arvoon.
         *
         * @param avain tässä merkinnässä
         * @param arvo tämän merkinnän edustama arvo
         */
        public SimpleImmutableEntry(K key, V value) {
            this.key = sävellain;
            this.value = arvo;
        }

        /**
         * Luo merkinnän, joka edustaa samaa kuvausta kuin
         * määritelty merkintä.
         *
         * @param merkintä kopioitavaksi
         */
        public SimpleImmutableEntry(Entry<? laajentaa K:ta, ? laajentaa V> entryä) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Palauttaa avaimen, joka vastaa tätä merkintää.
         *
         * @return avain, joka vastaa tätä merkintää
         */
        public K getKey() {
            paluuavain;
        }

        /**
         * Palauttaa arvon, joka vastaa tätä merkintää.
         *
         * @return arvo, joka vastaa tätä merkintää
         */
        public V getValue() {
            palautusarvo;
        }

        /**
         * Korvaa tämän merkinnän vastaavan arvon määritetyllä arvolla
         * arvo (valinnainen operaatio).  Tämä toteutus heittää yksinkertaisesti
         * <tt>UnsupportedOperationException</tt>, kuten tämä luokka toteuttaa
         * <i>muuttumaton</i> karttamerkintä.
         *
         * @param arvo, joka tallennetaan tähän merkintään
         * @return (Ei palaa)
         * @throws UnsupportedOperationException aina
         */
        public V setValue(V value) {
            heittää uuden UnsupportedOperationException();
        }

        /**
         * Vertaa määriteltyä objektia tähän merkintään tasa-arvon osalta.
         * Palautukset {@codetrue}, jos annettu objekti on myös kartta-alkio ja
         * Nämä kaksi alkiota edustavat samaa kuvausta.  Muodollisemmin, kaksi
         * alkiot {@code e1} ja {@code e2} edustavat samaa kuvausta
         *jos<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().equals(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * Tämä varmistaa, että {@code equals} -menetelmä toimii oikein eri puolilla
         * eri toteutuksia {@code Map.Entry} -rajapinnasta.
         *
         * @param o objekti, jota verrataan tasa-arvon vuoksi tämän karttamerkinnän kanssa
         * @return {@code true}, jos määritelty objekti on yhtä suuri kuin tämä kuvaus
         *merkintä
         * @see #hashCode
         */
        public boolean equals(Object o) {
            jos (!( o instance of Map.Entry))
                palauta väärin;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) && eq(value, e.getValue());
        }

        /**
         * Palauttaa tämän karttamerkinnän hajautuskoodiarvon.  Hajautuskoodi
         * karttamerkinnästä {@code e} määritellään seuraavasti: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Tämä varmistaa, että {@code e1.equals(e2)} tarkoittaa, että
         * {@code e1.hashCode()==e2.hashCode()} mille tahansa kahdelle Merkinnälle
         * {@code e1} ja {@code e2}, kuten yleinen
         * { sopimus@linkObject#hashCode}.
         *
         * @return tämän karttamerkinnän hajautuskoodiarvo
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Palauttaa merkkijonon esityksen tästä karttamerkinnästä.  Tämä
         * toteutus palauttaa tämän merkkijonon esityksen
         * sisäänpääsyn avain ja sen jälkeen yhtä suuri merkki ("<tt>=</tt>")
         * sen jälkeen tämän merkinnän arvon merkkijonoesitys.
         *
         * @return merkkijonoesitys tästä karttamerkinnästä
         */
        public String toString() {
            return-avain + "=" + arvo;
        }

    }

SimpleImmutableEntry heittää java.lang-tiedoston, jos se yrittää muuttaa arvoa, kutsuen setValue-metodia.TukematonOperationExceptionEpänormaali.



Koodi:







Edellinen:Java muuttaa sota-paketin konfiguraatiotiedostoa
Seuraava:Ota käyttöön Elasticsearch-palvelu Dockerin avulla
Julkaistu 2021-11-11 08:48:42 |
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com