Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 22637|Odpověď: 1

[Zdroj] Java java.util.AbstractMap.SimpleImmutableEntry pro podrobnosti

[Kopírovat odkaz]
Zveřejněno 10. 11. 2021 17:39:42 | | | |
Pár, nebo pár, poskytuje pohodlný způsob pro zpracování jednoduchých asociací klíč-hodnota, což je zvláště užitečné, když chceme z metody vrátit dvě hodnoty. JDK obsahuje interní třídy: AbstractMap.SimpleEntry a AbstractMap.SimpleImmutableEntry


1. SimpleEntry je definován v abstraktní třídě AbstractMap a jeho metoda konstrukce je podobná té u Pair.

2. Třída AbstractMap také obsahuje vnořenou třídu, která představuje neměnnou dvojici: třídu SimpleImmutableEntry.

/**
     * Záznam udržující neměnný klíč a hodnotu.  Tato třída
     * nepodporuje metodu <tt>setValue</tt>.  Tato třída může být
     * výhodné v metodách, které vracejí bezpečné snímky z
     * mapování klíč-hodnota.
     *
     * @since 1.6
     */
    public static class SimpleImmutableEntry<K,V>
        implements Entry<K,V>, java.io.Serializable
    {
        soukromý statický final long serialVersionUID = 7138329143949025153L;

        soukromý závěrečný klávesový klíč K;
        soukromá konečná hodnota V;

        /**
         * Vytváří položku reprezentující zobrazení ze specifikovaného
         * klíč k dané hodnotě.
         *
         * @param klíč tóninu reprezentovanou tímto záznamem
         * @param hodnotu hodnotu reprezentovanou tímto prvkem
         */
        public SimpleImmutableEntry(K key, V value) {
            this.key = klíč;
            this.value = value;
        }

        /**
         * Vytváří položku reprezentující stejné zobrazení jako
         * specifikovaný záznam.
         *
         * @param záznam záznam pro kopírování
         */
        public SimpleImmutableEntry(Entry<? rozšiřuje K, ? rozšiřuje V> entry) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Vrátí klíč odpovídající tomuto záznamu.
         *
         * @return klíč odpovídající tomuto záznamu
         */
        public K getKey() {
            klávesa return;
        }

        /**
         * Vrátí hodnotu odpovídající tomuto položce.
         *
         * @return hodnotu odpovídající tomuto záznamu
         */
        public V getValue() {
            návratnost;
        }

        /**
         * Nahradí hodnotu odpovídající tomuto prvku specifikovanou
         * hodnota (volitelná operace).  Tato implementace jednoduše vyhodí
         * <tt>UnsupportedOperationException</tt>, jak tato třída implementuje
         * <i>neměnný</i> záznam na mapě.
         *
         * @param nová hodnota bude uložena v tomto záznamu
         * @return (Nevrací se)
         * @throws NepodporovanéOperační výjimky vždy
         */
        public V setValue(V value) {
            throw new UnsupportedOperationException();
        }

        /**
         * Porovnává zadaný objekt s tímto položkou pro rovnost.
         * Returns {@codetrue} pokud je daný objekt také mapovým prvkem a
         * tyto dva záznamy představují stejné zobrazení.  Formálněji řečeno, dva
         * prvky {@code e1} a {@code e2} představují stejné zobrazení
         *když<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 zajišťuje, že metoda {@code rovná} funguje správně napříč
         * různé implementace rozhraní {@code Map.Entry}.
         *
         * @param objekt k porovnání pro rovnost s tímto mapovým záznamem
         * @return {@code true} pokud je specifikovaný objekt rovn tomuto zobrazení
         *položka
         * @see #hashCode
         */
        veřejný boolean se rovná(Objekt o) {
            if (!( o instance Map.Entry))
                return false;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) & eq(value, e.getValue());
        }

        /**
         * Vrací hodnotu hash kódu pro tento záznam mapy.  Hashovací kód
         * položky zobrazení {@code e} je definována jako: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * To zajišťuje, že {@code e1.rovná se(e2)} implikuje, že
         * {@code e1.hashCode()==e2.hashCode()} pro libovolné dva položky
         * {@code e1} a {@code e2}, jak vyžaduje obecný
         * kontrakt {@linkObjekt#hashCode}.
         *
         * @return hodnotu hash kódu pro tento záznam na mapě
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Vrátí řetězcovou reprezentaci tohoto mapového záznamu.  Toto
         * implementace vrací řetězcovou reprezentaci tohoto
         * klíč položky následovaný znakem rovna ("<tt>=</tt>")
         * následovaná řetězcovou reprezentací hodnoty tohoto prvku.
         *
         * @return řetězcová reprezentace tohoto mapového záznamu
         */
        public String toString() {
            return key + "=" + value;
        }

    }

SimpleImmutableEntry hodí java.lang, pokud se pokusí změnit hodnotu, a volá metodu setValue.Výjimka UnsupportedOperationExceptionAbnormální.



Kód:







Předchozí:Java upravuje konfigurační soubor balíčku war
Další:Nasazení služby Elasticsearch pomocí Dockeru
Zveřejněno 2021-11-11 08:48:42 |
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com