Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 22637|Отговор: 1

[Източник] Java java.util.AbstractMap.SimpleImmutableEntry за подробности

[Копирай линк]
Публикувано на 2021-11-10 17:39:42 | | | |
Двойка, или двойка, предоставя удобен начин за обработка на прости асоциации между ключ и стойност, което е особено полезно, когато искаме да върнем две стойности от даден метод. JDK идва с вътрешни класове: AbstractMap.SimpleEntry и AbstractMap.SimpleImmutableEntry

Използването на кортежи в Java

https://www.itsvse.com/thread-10055-1-1.html

1. SimpleEntry е дефиниран в абстрактния клас AbstractMap, а методът му на конструиране е подобен на този на Pair.

2. Класът AbstractMap съдържа и вложен клас, който представлява неизменяема двойка: класа SimpleImmutableEntry.

/**
     * Запис, поддържащ неизменим ключ и стойност.  Този клас
     * не поддържа <tt>метода setValue</tt>.  Този клас може да бъде
     * удобен в методи, които връщат снимки с нишки, безопасни
     * ключови стойностни съпоставяния.
     *
     * @since 1.6
     */
    публичен статичен клас SimpleImmutableEntry<K,V>
        implimplements Entry<K,V>, java.io.Serializable
    {
        частен статичен финален дълъг сериалVersionUID = 7138329143949025153L;

        частен финален ключ K;
        частна крайна стойност V;

        /**
         * Създава запис, представляващ отображение от зададеното
         * ключ към зададената стойност.
         *
         * @param тоналността, представена в този запис
         * @param стойност на стойността, представена от този запис
         */
        public SimpleImmutableEntry(K key, V стойност) {
            this.key = ключ;
            това.стойност = стойност;
        }

        /**
         * Създава запис, представящ същото отображение като
         * посочен запис.
         *
         * @param запис за копиране
         */
        public SimpleImmutableEntry(Entry<? extend K, ? разширява V> entry) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Връща ключа, съответстващ на този запис.
         *
         * @return тоналността, съответстваща на този запис
         */
        public K getKey() {
            ключ за връщане;
        }

        /**
         * Връща стойността, съответстваща на този запис.
         *
         * @return стойността, съответстваща на този запис
         */
        public V getValue() {
            възвръщаема стойност;
        }

        /**
         * Заменя стойността, съответстваща на този запис, с посочената
         * стойност (опционална операция).  Тази реализация просто хвърля
         <tt>* UnsupportedOperationException</tt>, както този клас реализира
         * запис на <i>неизменна</i> карта.
         *
         * @param стойност за нова стойност, която да се съхранява в този запис
         * @return (Не се връща)
         * @throws UnsupportedOperationException винаги
         */
        public V setValue(V value) {
            хвърли нов UnsupportedOperationException();
        }

        /**
         * Сравнява посочения обект с този запис за равенство.
         * Връща {@codetrue}, ако даденият обект също е запис в картата и
         * двата записа представляват едно и също отображение.  По-официално, две
         * елементите {@code e1} и {@code e2} представляват едно и също отображение
         *ако<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().equals(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * Това гарантира, че методът {@code equals} работи правилно
         * различни реализации на интерфейса {@code Map.Entry}.
         *
         * @param o обект, който да се сравни за равенство с този запис в картата
         * @return {@code вярно}, ако зададеният обект е равен на това отображение
         *вход
         * @see #hashCode
         */
        публични булеви равни (Обект o) {
            ако (!( o инстанция на Map.Entry))
                отговорът е фалшив;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) и & eq(value, e.getValue());
        }

        /**
         * Връща стойността на хеш кода за този запис в картата.  Хеш кодът
         * на запис {@code e} се дефинира като: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Това гарантира, че {@code e1.equals(e2)} означава, че
         * {@code e1.hashCode()==e2.hashCode()} за всеки два записа
         * {@code e1} и {@code e2}, както изисква генералът
         * договор на {@linkObject#hashCode}.
         *
         * @return стойността на хеш кода за този запис в картата
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (стойност == null ? 0 : value.hashCode());
        }

        /**
         * Връща String представяне на този запис в картата.  Този
         * имплементацията връща представянето на този низ
         * ключ за запис, последван от символа за равенство ("<tt>=</tt>")
         * последвано от представянето на стойността на този запис чрез низ.
         *
         * @return String представяне на този запис в картата
         */
        public String toString() {
            return ключ + "=" + стойност;
        }

    }

SimpleImmutableEntry изхвърля java.lang, ако се опита да промени стойността, като извиква метода setValue.UnsupportedOperationExceptionАнормален.



Код:







Предишен:Java модифицира конфигурационния файл на военния пакет
Следващ:Разгръщане на услугата Elasticsearch чрез Docker
Публикувано на 2021-11-11 08:48:42 |
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com