Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 22637|Atbildi: 1

[Avots] Java java.util.AbstractMap.SimpleImmutableEntry sīkākai informācijai

[Kopēt saiti]
Publicēts 2021-11-10 17:39:42 | | | |
Pāris vai pāris nodrošina ērtu veidu, kā apstrādāt vienkāršas atslēgas un vērtības asociācijas, kas ir īpaši noderīgi, ja mēs vēlamies atgriezt divas vērtības no metodes. JDK nāk ar iekšējām klasēm: AbstractMap.SimpleEntry un AbstractMap.SimpleImmutableEntry


1. SimpleEntry ir definēts abstraktā klasē AbstractMap, un tā uzbūves metode ir līdzīga Pair.

2. AbstractMap klasē ir arī ligzdota klase, kas apzīmē nemainīgu pāri: klase SimpleImmutableEntry.

/**
     * Ieraksts, kas saglabā nemainīgu atslēgu un vērtību.  Šī klase
     * neatbalsta metodi <tt>setValue</tt>.  Šī klase var būt
     * ērts metodēs, kas atgriež pavedieniem drošus momentuzņēmumus
     * atslēgas-vērtības kartējumi.
     *
     * @since 1,6
     */
    publiskā statiskā klase SimpleImmutableEntry<K,V>
        īsteno Entry<K,V>, java.io.Serializable
    {
        privāts statisks galīgais garais serialVersionUID = 7138329143949025153L;

        privātā galīgā K atslēga;
        privātā galīgā V vērtība;

        /**
         * Izveido ierakstu, kas attēlo kartējumu no norādītā
         * atslēga uz norādīto vērtību.
         *
         * @param atslēga atslēga, ko attēlo šis ieraksts
         * @param vērtība vērtība, ko atspoguļo šis ieraksts
         */
        public SimpleImmutableEntry(K atslēga, V vērtība) {
            this.key = atslēga;
            this.value = vērtība;
        }

        /**
         * Izveido ierakstu, kas attēlo to pašu kartējumu kā
         * Norādīts ieraksts.
         *
         * @param ieraksta kopiju
         */
        public SimpleImmutableEntry(Entry<? paplašina K, ? paplašina V> ierakstu) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Atgriež atslēgu, kas atbilst šim ierakstam.
         *
         * @return šim ierakstam atbilstošo atslēgu
         */
        publiskais K getKey() {
            atgriešanās atslēga;
        }

        /**
         * Atgriež vērtību, kas atbilst šim ierakstam.
         *
         * @return šim ierakstam atbilstošā vērtība
         */
        publiskais V getValue() {
            atgriešanās vērtība;
        }

        /**
         * Aizstāj šim ierakstam atbilstošo vērtību ar norādīto
         * Vērtība (izvēles darbība).  Šī ieviešana vienkārši izmet
         * <tt>UnsupportedOperationException</tt>, kā šī klase īsteno
         * <i>nemainīgs</i> kartes ieraksts.
         *
         * @param vērtība jaunā vērtība, kas jāsaglabā šajā ierakstā
         * @return (neatgriežas)
         * @throws UnsupportedOperationException vienmēr
         */
        publiskais V setValue(V vērtība) {
            izmest jaunu UnsupportedOperationException();
        }

        /**
         * Salīdzina norādīto objektu ar šo vienlīdzības ierakstu.
         * Atgriež {@codetrue}, ja dotais objekts ir arī kartes ieraksts, un
         * Abi ieraksti attēlo vienu un to pašu kartējumu.  Formāli runājot, divi
         * ieraksti {@code e1} un {@code e2} apzīmē vienu un to pašu kartējumu
         *ja<pre>
         * (e1.getKey()==null ?
         * e2.getKey()== null :
         * e1.getKey().equals(e2.getKey()))
         *   &&
         * (e1.getValue()== null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * Tas nodrošina, ka {@code equals} metode darbojas pareizi visās
         * dažādas {@code Map.Entry} saskarnes ieviešanas.
         *
         * @param objekts, kas jāsalīdzina vienlīdzībai ar šo kartes ierakstu
         * @return {@code true}, ja norādītais objekts ir vienāds ar šo karti
         *Ierakstu
         * @see #hashCode
         */
        publiskais Būla vienāds(Objekts o) {
            ja (!( o Map.Entry instance))
                atgriešanās nepatiesa;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) && eq(value, e.getValue());
        }

        /**
         * Atgriež šī kartes ieraksta jaucējkoda vērtību.  Jaucējkods
         * kartes ieraksta {@code e} ir definēts: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Tas nodrošina, ka {@code e1.equals(e2)} nozīmē, ka
         * {@code e1.hashCode()==e2.hashCode()} jebkuriem diviem ierakstiem
         * {@code e1} un {@code e2}, kā to prasa vispārīgie
         * līgums par {@linkObjekts#hashCode}.
         *
         * @return šī kartes ieraksta jaucējkoda vērtību
         * @see #equals
         */
        public int hashCode() {
            return (atslēga == nulle ? 0 : key.hashCode()) ^
                   (vērtība == nulle ? 0 : vērtība.hashCode());
        }

        /**
         * Atgriež šī kartes ieraksta virknes attēlojumu.  Šis
         * implementācija atgriež virknes attēlojumu
         * ieraksta atslēga, kam seko vienādības rakstzīme ("<tt>=</tt>")
         * kam seko šī ieraksta vērtības virknes attēlojums.
         *
         * @return šī kartes ieraksta virknes attēlojumu
         */
        public String toString() {
            atgriešanās taustiņš + "=" + vērtība;
        }

    }

SimpleImmutableEntry izmet java.lang, ja tas mēģina modificēt vērtību, izsaucot setValue metodi.UnsupportedOperationExceptionPatoloģiska.



Kods:







Iepriekšējo:Java modificē kara pakotnes konfigurācijas failu
Nākamo:Elasticsearch pakalpojuma izvietošana, izmantojot Docker
Publicēts 2021-11-11 08:48:42 |
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com