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:
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:
Mapamap = 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:
Mapamap = 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.