Como classificar um mapa por valor em java

Como classificar um mapa por valor em java

Em Java, “Mapas”São uma poderosa estrutura de dados usada para armazenar dados. Um mapa pode determinar facilmente o valor apropriado para uma determinada chave, porque o mapa armazena dados em pares de valor-chave, onde cada chave tem um valor exclusivo correspondente. Para recuperar esses valores de um mapa, é necessária uma chave exclusiva; No entanto, os valores podem ser os mesmos para duas chaves únicas.

Este artigo explicará o método de classificar um mapa por valor em java.

Como classificar um mapa por valor em java?

Em Java, um mapa pode ser classificado por valor:

  • Usando o método STIL ()
  • Usando o método classed ()

Vamos agora verificar cada um dos métodos mencionados um por um!

Método 1: Classifique um mapa por valor em java usando o método STILE ()

O "organizar()”O método é um método estático da aula de coleção Java. Este método só pode ser aplicado a listas como LinkedList, ArrayList e assim por diante.

Esta seção demonstrará o método para classificar os valores dos elementos do mapa em ordem ascendente e descendente.

Exemplo 1: classifique um mapa por valor em ordem ascendente

Neste exemplo, classificaremos os valores do mapa em ordem crescente usando o “ComparingByValue ()" e a "organizar()”. Primeiro criaremos um mapa do tipo inteiro chamado “mapa" do seguinte modo:

Mapa map = new hashmap ();

Em seguida, colocamos os valores no mapa criado na forma de pares de valor-chave:

mapa.put (7, 10);
mapa.put (1, 1000);
mapa.put (5, 380);
mapa.put (3, 700);

Imprima o mapa como um par de valores-chave usando o “para cada" laço. O loop foreach está sendo utilizado apenas para loop através de cada elemento no mapa repetidamente. Nós adicionamos um “expressão lambda”(->) Com o loop para evitar várias linhas no código-fonte:

mapa.foreach ((k, v)-> sistema.fora.println (k + ":" + v));

Em seguida, imprimiremos a seguinte declaração usando o “Sistema.fora.println ()”Método:

Sistema.fora.println ("Os valores após a classificação:");

Para classificar as entradas com o “organizar()”Método, devemos primeiro criar uma lista com o conjunto de entradas retornadas pelo“Entryset ()”Método:

Lista> nlist = new ArrayList (mapa.entrada de entrada ());

Agora, chamaremos o método Sort () passando o “ComparingByValue ()”Método como um argumento para permitir a comparação dos valores da entrada:

nlist.classificar (entrada.comparandoByValue ());

Por fim, imprimiremos os valores classificados do mapa usando o loop foreach:

nlist.foreach (sistema.out :: println);

Observação: Ao executar o exemplo acima, você deve importar as bibliotecas relacionadas ao mapa, lista, ArrayList, MapEntry, Hashmap no topo do código -fonte.

A saída mostra que o mapa é classificado por valor em ordem crescente:

Exemplo 2: classifique um mapa por valor em ordem decrescente

Neste exemplo, classificaremos os valores de um mapa usando o “organizar()”Método e“ComparingByValue ()”Método para classificar os elementos do mapa em ordem decrescente. Aqui, primeiro, criaremos um mapa do tipo inteiro para armazenar valores int:

Mapa map = new hashmap ();

Em seguida, adicionaremos os dados em um mapa na forma de pares de valor-chave:

mapa.put (7, 10);
mapa.put (1, 100);
mapa.put (5, 3800);
mapa.put (3, 70);

Vamos criar uma lista para classificar os elementos do mapa:

Lista> nlist = new ArrayList (mapa.entrada de entrada ());

Aqui, chamaremos de “ComparingByValue ()”Método, passando um“ordem reversa()”Método do“Comparador”Class como argumento. Ele retornará os valores do mapa na ordem inversa:

nlist.classificar (entrada.ComparingByValue (comparador.ordem reversa());

Imprima os valores classificados usando “para cada" laço:

nlist.foreach (sistema.out :: println);

Como você pode ver, os valores do mapa são classificados na ordem decrescente:

Vamos ver outro método para classificar os elementos do mapa por valor.

Método 2: Classifique um mapa por valor em java usando o método STORNED ()

A segunda abordagem é classificar o mapa por valores usando a API do fluxo. A API de fluxo contém vários métodos que podem ser usados ​​para processar uma coleta de objetos, como Stream () e classificada ().

Nesta seção, também imprimiremos o mapa por valores em ordem crescente e descendente.

Exemplo 1: classifique um mapa por valor em ordem ascendente

Este exemplo usará o mesmo valor do mapa e os classificará em ordem crescente usando o “classificado ()”Método de API de fluxo. Vamos utilizar o “fluxo()”Método para transformar o conjunto de entrada do mapa em um fluxo e depois classificar o mapa usando o“classificado ()”Método.

O "ComparingByValue ()”O método do mapa fornece o“classificado ()”Método com informações adicionais sobre a ordem de classificação natural. Por fim, o “para cada”O loop pode ser usado para acessar todos os elementos e obter os pares de valor-chave um por um:

Fluxo> classificado = mapa.Entryset ().fluxo()
.classificado (mapa.Entrada.comparandoByValue ());

A saída mostra que o mapa é classificado por valor em ordem ascendente usando o método classificado ():

Exemplo 2: classifique um mapa por valor em ordem decrescente

Para classificar o mapa por valor em ordem decrescente, usaremos o “ComparingByValue ()”Método passando“ordem reversa()”Método como um argumento para o“classificado ()”Método:

Fluxo> classificado = mapa.Entryset ().fluxo() .classificado (mapa.Entrada.ComparingByValue (comparador.ordem reversa()));

Como você pode ver, o “classificado ()”Método organizou o valor do mapa em ordem descendente:

Fornecemos todas as informações essenciais relacionadas à classificação de um mapa por valor.

Conclusão

Para classificar um mapa por valor em java, use o “organizar()”Método e o“classificado ()”Método com o método ComparingByValue (). Esses métodos classificam os valores em ordem ascendente, enquanto para a ordem descendente, você deve chamar o método reverseOrder () da classe comparadora como um argumento dos métodos especificados. Este artigo cobriu vários métodos Java para classificar um mapa por valor.