1. Preparação teórica
O MAP é uma interface de coleção para pares de valor-chave. Suas classes de implementação incluem principalmente: Hashmap, Treemap, Hashtable e LinkedHashmap.
TreeMap: uma implementação do NavigabableMap baseada na árvore vermelha-preta, que é classificada na ordem natural de suas chaves ou com base no comparador fornecido quando o mapeamento é criado, dependendo do construtor usado.
Os valores do hashmap estão em ordem. Eles são implementados de acordo com o código de hash da chave. Como implementamos a classificação para este hashmap não ordenado? Consulte o tipo de valor de TreeMap.
Map.Entry Retorna a visualização de coleções.
2. Classificação -chave
Treemap está em ordem crescente por padrão. Se precisarmos alterar o método de classificação, precisamos usar um comparador: comparador. O comparador pode classificar objetos ou matrizes de coleta e implementar o método de comparação pública (T O1, to2) dessa interface para realizar a classificação, como segue:
importar java.util.comparator; importar java.util.iterator; importar java.util.map; importar java.util.set; importar java.util.treemap; public class TreeMapTest {public staid main (string [] args) {map <string> string> map = new theTap <, STATION MAIN (, obj2) {// classificar na ordem descendente retornar obj2.compareto (obj1); map.put ("b", "cccccc"); map.put ("d", "aaaaa"); map.put ("c", "bbbbb"); map.put ("a", "ddddd"); Set <string> keySet = map.keyset (); Iterator <string> iter = keyset.iterator (); while (iter.hasnext ()) {string key = iter.Next (); System.out.println (chave + ":" + map.get (chave)); }}}Os resultados da operação são os seguintes:
D: AAAAAC: BBBBBB: CCCCCA: DDDDDD
3. Classificação de valor
O exemplo acima é classificar de acordo com o valor chave do Treemap, mas às vezes precisamos classificar de acordo com o valor do Treemap. Para classificar o valor, precisamos usar a lista (lista <t>, comparador <? Super t> c) Método de coleções, que classifica a lista especificada de acordo com a ordem gerada pelo comparador especificado. Mas há um pré -requisito, ou seja, todos os elementos devem ser comparados com base no comparador fornecido, como segue:
importar java.util.ArrayList; importar java.util.Collections; importar java.util.comparator; importar java.util.list; importar java.util.map; importar java.util.map.entry; importen; Treemap <String, String> (); map.put ("a", "dddddd"); map.put ("c", "bbbbbb"); map.put ("d", "aaaaa"); map.put ("b", "cccccc"); // aqui converte map.entrySet () para list list <pap.entry <string, string >> list = new ArrayList <pap.entry <string, string >> (map.entrySet ()); // use um comparador para implementar colecionários de classificação.sort (list, novo comparador <pap.entry <string, string >> () {// classificando public int compare (entrada <string, string> o1, entrada <string, string> o2) {return o1.getValue (). Compareto (o2.getValue ()); para (map.entry <string, string> mapeamento: list) {system.out.println (mapping.getKey ()+":"+mapping.getValue ()); }}}Os resultados da operação são os seguintes:
D: AAAAAC: BBBBBB: CCCCCA: DDDDDD
A classificação do mapa Java acima por meio do método de implementação de chave e valor é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.