Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 22637|Odpowiedź: 1

[Źródło] Java java.util.AbstractMap.SimpleImmutableEntry dla szczegółów

[Skopiuj link]
Opublikowano 2021-11-10 17:39:42 | | | |
Para lub para zapewnia wygodny sposób obsługi prostych powiązań klucz-wartość, co jest szczególnie przydatne, gdy chcemy zwrócić dwie wartości z metody. JDK zawiera klasy wewnętrzne: AbstractMap.SimpleEntry oraz AbstractMap.SimpleImmutableEntry


1. SimpleEntry jest zdefiniowany w klasie abstrakcyjnej AbstractMap, a jego metoda konstrukcyjna jest podobna do tej w Pair.

2. Klasa AbstractMap zawiera również klasę zagnieżdżoną, która reprezentuje niezmienną parę: klasę SimpleImmutableEntry.

/**
     * Wpis utrzymujący niezmienny klucz i wartość.  Ta klasa
     * nie obsługuje metody <tt>setValue</tt>.  Ta klasa może być
     * wygodne w metodach zwracających bezwątkowe migawki
     * odwzorowania klucz-wartość.
     *
     * @since 1,6
     */
    publiczna klasa statyczna SimpleImmutableEntry<K,V>
        implements Entry<K,V>, java.io.Serializable
    {
        prywatny statyczny final long serialVersionUID = 7138329143949025153L;

        prywatny końcowy K;
        prywatna ostateczna wartość V;

        /**
         * Tworzy wpis reprezentujący odwzorowanie z określonego
         * klucz do określonej wartości.
         *
         * @param klucz jest kluczem reprezentowanym przez ten wpis
         * @param wartość wartość reprezentowaną przez ten wpis
         */
        public SimpleImmutableEntry(K key, wartość V) {
            this.key = klucz;
            this.value = value;
        }

        /**
         * Tworzy wpis reprezentujący to samo odwzorowanie co
         * określony wpis.
         *
         * @param wpis wpis do kopiowania
         */
        public SimpleImmutableEntry(Entry<? rozszerza K, ? rozszerza V> entry) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Zwraca klucz odpowiadający temu wpisowi.
         *
         * @return klucz odpowiadający temu wpisowi
         */
        public K getKey() {
            return;
        }

        /**
         * Zwraca wartość odpowiadającą temu wpisowi.
         *
         * @return wartość odpowiadającą temu wpisowi
         */
        public V getValue() {
            wartość zwrotu;
        }

        /**
         * Zastępuje wartość odpowiadającą temu wpisowi określoną
         * wartość (operacja opcjonalna).  Ta implementacja po prostu rzuca
         * <tt>UnsupportedOperationException</tt>, jak implementuje ta klasa
         * <i>niezmienny</i> wpis na mapie.
         *
         * @param wartość nowej wartości do przechowywania w tym wpisie
         * @return (Nie wraca)
         * @throws UnsupportedOperationException zawsze
         */
        public V setValue(V value) {
            throw new UnsupportedOperationException();
        }

        /**
         * Porównuje określony obiekt z tym wpisem dla równości.
         * Zwraca {@codeprawdziwe} jeśli dany obiekt jest również elementem odwzorowania i
         * oba wpisy reprezentują to samo odwzorowanie.  Formalniej mówiąc, dwa
         * elementy {@code e1} i {@code e2} reprezentują to samo odwzorowanie
         *jeśli<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 zapewnia, że metoda {@code równa się} działa poprawnie w całej przestrzeni
         * różne implementacje interfejsu {@code Map.Entry}.
         *
         * @param obiekt do porównania dla równości z tym wpisem na mapie
         * @return {@code prawdziwe} jeśli określony obiekt jest równy temu odwzorowaniu
         *wpis
         * @see #hashCode
         */
        publiczny boolean równy się(Obiekt o) {
            if (!( o instancji Map.Entry))
                return false;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) & eq(value, e.getValue());
        }

        /**
         * Zwraca wartość kodu skrótu dla tego wpisu mapy.  Kod skrótu
         * elementu odwzorowania {@code e} definiuje się jako: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * To zapewnia, że {@code e1.równa się(e2)} implikuje, że
         * {@code e1.hashCode()==e2.hashCode()} dla dowolnych dwóch wpisów
         * {@code e1} i {@code e2}, zgodnie z wymaganiami ogólnych
         * kontrakt {@linkObject#hashCode}.
         *
         * @return wartość kodu skrótu dla tego wpisu mapy
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Zwraca reprezentację ciągu tego wpisu mapy.  Ten
         * implementacja zwraca reprezentację ciągu tego
         * klucz do wpisu, a następnie znak równy ("<tt>=</tt>")
         * po czym następuje reprezentacja ciągu wartości tego wpisu.
         *
         * @return reprezentacja ciągu tego wpisu na mapie
         */
        public String toString() {
            klucz return + "=" + wartość;
        }

    }

SimpleImmutableEntry rzuca java.lang, jeśli próbuje zmodyfikować wartość, wywołując metodę setValue.NieobsługiwanaOperacjaExceptionNienormalny.



Kod:







Poprzedni:Java modyfikuje plik konfiguracyjny pakietu war
Następny:Wdrożenie usługi Elasticsearch za pomocą Dockera
Opublikowano 2021-11-11 08:48:42 |
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com