Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 22637|Répondre: 1

[Source] Java java.util.AbstractMap.SimpleImmutableEntry pour plus de détails

[Copié le lien]
Publié le 10-11-2021 à 17:39:42 | | | |
La paire, ou paire, offre un moyen pratique de gérer des associations clé-valeur simples, ce qui est particulièrement utile lorsque l’on souhaite retourner deux valeurs d’une méthode. Le JDK est livré avec des classes internes : AbstractMap.SimpleEntry et AbstractMap.SimpleImmutableEntry

L’utilisation des tuples à Java

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

1. SimpleEntry est défini dans la classe abstraite AbstractMap, et sa méthode de construction est similaire à celle de Pair.

2. La classe AbstractMap contient également une classe imbriquée, qui représente une paire immuable : la classe SimpleImmutableEntry.

/**
     * Une Entrée conservant une clé et une valeur immuables.  Cette classe
     * ne prend pas en charge la méthode <tt>setValue</tt>.  Cette classe peut être
     * pratique dans les méthodes qui retournent des instantanés thread-safe de
     * correspondances clé-valeur.
     *
     * @since 1.6
     */
    classe statique publique SimpleImmutableEntry<K,V>
        implements Entry<K,V>, java.io.Serializable
    {
        private static final long serialVersionUID = 7138329143949025153L ;

        clé finale privée ;
        valeur finale privée de V ;

        /**
         * Crée une entrée représentant une correspondance à partir du spécifié
         * clé vers la valeur spécifiée.
         *
         * @param la clé représentée par cette entrée
         * @param valeur la valeur représentée par cette entrée
         */
        public SimpleImmutableEntry(K key, V value) {
            this.key = clé ;
            this.value = valeur ;
        }

        /**
         * Crée une entrée représentant la même application que la
         * entrée spécifiée.
         *
         * @param entrée l’entrée à copier
         */
        public SimpleImmutableEntry(Entry< ? étends K, ? étend V> entry) {
            this.key = entry.getKey() ;
            this.value = entry.getValue() ;
        }

        /**
         * Retourne la clé correspondant à cette entrée.
         *
         * @return la clé correspondant à cette entrée
         */
        public K getKey() {
            touche retour ;
        }

        /**
         * Retourne la valeur correspondant à cette entrée.
         *
         * @return la valeur correspondant à cette entrée
         */
        public V getValue() {
            valeur de retour ;
        }

        /**
         * Remplace la valeur correspondant à cette entrée par la spécifiée
         * valeur (opération optionnelle).  Cette implémentation se contente de déstabiliser
         * <tt>UnsupportedOperationException</tt>, telle que cette classe l’implémente
         * <i>une entrée</i> immuable sur la carte.
         *
         * @param valeur nouvelle valeur à stocker dans cette entrée
         * @return (Ne revient pas)
         * @throws UnsupportedOperationException toujours
         */
        public V setValue(V value) {
            lancer un nouveau UnsupportedOperationException() ;
        }

        /**
         * Compare l’objet spécifié avec cette entrée pour l’égalité.
         * retourne {@codevrai} si l’objet donné est aussi une entrée de mappage et
         * les deux entrées représentent la même correspondance.  Plus formellement, deux
         * Les entrées {@code e1} et {@code e2} représentent la même correspondance
         *si<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().égal(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().égal(e2.getValue()))</pre>
         * Cela garantit que la méthode {@code égale} fonctionne correctement à travers
         * différentes implémentations de l’interface {@code Map.Entry}.
         *
         * @param O objet à comparer pour l’égalité avec cette entrée de la carte
         * @return {@code vrai} si l’objet spécifié est égal à cette application
         *entrée
         * @see #hashCode
         */
        public boolean égal à (Objet o) {
            si ( !( ou instance de Map.Entry))
                return false ;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o ;
            return eq(key, e.getKey()) & & eq(value, e.getValue()) ;
        }

        /**
         * Retourne la valeur du code de hachage pour cette entrée de la carte.  Le code de hachage
         * d’une entrée de la carte {@code e} est définie comme : <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Cela garantit que {@code é1.égaux(e2)} implique que
         * {@code e1.hashCode()==e2.hashCode()} pour deux entrées quelconques
         * {@code e1} et {@code e2}, selon l’exigence générale
         * contrat de {@linkObject#hashCode}.
         *
         * @return la valeur du code de hachage pour cette entrée de la carte
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode()) ;
        }

        /**
         * Retourne une représentation String de cette entrée de la carte.  Ceci
         * implémentation retourne la représentation de la chaîne de ce
         * la touche d’entrée suivie du caractère égal (« <tt>=</tt> »)
         * suivi de la représentation de la chaîne de la valeur de cette entrée.
         *
         * @return une représentation de chaîne de cette entrée de la carte
         */
        public String toString() {
            touche retour + « = » + valeur ;
        }

    }

SimpleImmutableEntry envoie java.lang s’il tente de modifier la valeur, appelant la méthode setValue.ExceptionOpérationSans Prise en ChargeAnormal.



Code:







Précédent:Java modifie le fichier de configuration du paquet war
Prochain:Déploie le service Elasticsearch en utilisant Docker
Publié le 11-11-2021 08:48:42 |
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com