Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 22637|Resposta: 1

[Fonte] Java java.util.AbstractMap.SimpleImmutableEntry para detalhes

[Copiar link]
Postado em 10-11-2021 17:39:42 | | | |
Par, ou par, oferece uma maneira conveniente de lidar com associações simples-chave-valor, o que é especialmente útil quando queremos devolver dois valores de um método. O JDK vem com classes internas: AbstractMap.SimpleEntry e AbstractMap.SimpleImmutableEntry


1. SimpleEntry é definido na classe abstract AbstractMap, e seu método de construção é semelhante ao do Pair.

2. A classe AbstractMap também contém uma classe aninhada, que representa um par imutável: a classe SimpleImmutableEntry.

/**
     * Uma Entrada que mantém uma chave e valor imutáveis.  Esta classe
     * não suporta método <tt>setValue</tt>.  Essa classe pode ser
     * conveniente em métodos que retornam instantâneos thread-safe de
     * mapeamentos chave-valor.
     *
     * @since 1.6
     */
    classe pública estática SimpleImmutableEntry<K,V>
        implementa Entry<K,V>, java.io.Serializable
    {
        private static final long serialVersionUID = 7138329143949025153L;

        chave final particular K;
        valor final privado V;

        /**
         * Cria uma entrada representando um mapeamento a partir do especificado
         * chave para o valor especificado.
         *
         * @param chave a chave representada por esta entrada
         * @param valor o valor representado por esta entrada
         */
        public SimpleImmutableEntry(K key, V value) {
            this.key = chave;
            this.value = value;
        }

        /**
         * Cria uma entrada que representa o mesmo mapeamento que o
         * entrada especificada.
         *
         * @param entrada a entrada para copiar
         */
        publica SimpleImmutableEntry(Entry<? estende K, ? estende V> entry) {
            this.key = entry.getKey();
            this.value = entry.getValue();
        }

        /**
         * Retorna a chave correspondente a esta entrada.
         *
         * @return a chave correspondente a esta entrada
         */
        public K getKey() {
            tecla de retorno;
        }

        /**
         * Retorna o valor correspondente a esta entrada.
         *
         * @return o valor correspondente a esta entrada
         */
        public V getValue() {
            valor de retorno;
        }

        /**
         * Substitui o valor correspondente a essa entrada pelo especificado
         * valor (operação opcional).  Essa implementação simplesmente joga
         * <tt>UnsupportedOperationException</tt>, conforme esta classe implementa
         * <i>uma entrada</i> imutável no mapa.
         *
         * @param valor novo valor a ser armazenado nesta entrada
         * @return (Não retorna)
         * @throws ExceçãoOperaçãoSem Suporte sempre
         */
        public V setValue(V value) {
            lançar um novo UnsupportedOperationException();
        }

        /**
         * Compara o objeto especificado com esta entrada para igualdade.
         * Retorna {@codetrue} se o objeto dado também for uma entrada de mapa e
         * as duas entradas representam o mesmo mapeamento.  Mais formalmente, dois
         * As entradas {@code e1} e {@code e2} representam o mesmo mapeamento
         *se<pre>
         * (e1.getKey()==null ?
         * e2.getKey()==null :
         * e1.getKey().equals(e2.getKey()))
         *   &&
         * (e1.getValue()==null ?
         * e2.getValue()==null :
         * e1.getValue().equals(e2.getValue()))</pre>
         * Isso garante que o método {@code igual} funcione corretamente entre
         * diferentes implementações da interface {@code Map.Entry}.
         *
         * @param o objeto a ser comparado para igualdade com esta entrada do mapa
         * @return {@code verdadeiro} se o objeto especificado for igual a esse mapa
         *entrada
         * @see #hashCode
         */
        booleano público é igual a (Object o) {
            se (!( ou instância de Map.Entry))
                retorne falso;
            Map.Entry<?,?> e = (Map.Entry<?,?>)o;
            return eq(key, e.getKey()) & eq(value, e.getValue());
        }

        /**
         * Retorna o valor do código hash para esta entrada do mapa.  O código hash
         * de uma entrada de mapa {@code e} é definido como: <pre>
         * (e.getKey()==null ? 0 : e.getKey().hashCode()) ^
         * (e.getValue()==null ? 0 : e.getValue().hashCode())</pre>
         * Isso garante que {@code e1.equals(e2)} implica que
         * {@code e1.hashCode()==e2.hashCode()} para quaisquer duas Entradas
         * {@code e1} e {@code e2}, conforme exigido pelo geral
         * contrato de {@linkObject#hashCode}.
         *
         * @return o valor do código hash para esta entrada do mapa
         * @see #equals
         */
        public int hashCode() {
            return (key == null ? 0 : key.hashCode()) ^
                   (value == null ? 0 : value.hashCode());
        }

        /**
         * Retorna uma representação em String desta entrada do mapa.  Este
         * implementação retorna a representação da cadeia deste
         * a chave de entrada seguida pelo caractere de igual ("<tt>=</tt>")
         * seguido pela representação da string do valor desta entrada.
         *
         * @return uma representação de cadeia desta entrada do mapa
         */
        public String toString() {
            Tecla de retorno + "=" + valor;
        }

    }

SimpleImmutableEntry lança java.lang se tentar modificar o valor, chamando o método setValue.OperaçãoExceçãoSem SuporteAnormal.



Código:







Anterior:Java modifica o arquivo de configuração do pacote war
Próximo:Implante o serviço Elasticsearch usando o Docker
Postado em 2021-11-11 08:48:42 |
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com