1. Préparation théorique
MAP est une interface de collection pour les paires de valeurs clés. Ses classes d'implémentation incluent principalement: HashMap, Treemap, HashTable et LinkedHashMap.
Treemap: une implémentation NavigableMap basée sur l'arbre rouge-noir, qui est trié dans l'ordre naturel de ses clés ou basé sur le comparateur fourni lorsque le mappage est créé, selon le constructeur utilisé.
Les valeurs de Hashmap sont en ordre. Ils sont mis en œuvre en fonction du code de hash de la clé. Comment implémenter le tri pour ce hashmap non ordonné? Reportez-vous à la valeur de Treemap.
Map.Entry renvoie la vue des collections.
2. Tri des clés
Treemap est dans l'ordre croissant par défaut. Si nous devons modifier la méthode de tri, nous devons utiliser un comparateur: Comparateur. Le comparateur peut trier les objets ou les tableaux de collecte et implémenter la méthode de comparaison publique (T o1, TO2) de cette interface pour réaliser le tri, comme suit:
Importer java.util ..Parator; import java.util.iterator; import java.util.map; import java.util.set; import java.util.treemap; public class Treemaptest {public static void main (String [] args) {map <string, String> Map = New String, String, (String> (new Comparmat OBJ2) {// Triez dans l'ordre descendant RETOUR OBJ2.CATERETO (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 (clé + ":" + map.get (key)); }}}Les résultats de l'opération sont les suivants:
D: AAAAAC: BBBBBB: CCCCCA: DDDDDD
3. Tri de valeur
L'exemple ci-dessus est de trier en fonction de la valeur clé de Treemap, mais parfois nous devons trier en fonction de la valeur de Treemap. Pour trier la valeur, nous devons utiliser la méthode de tri (liste <T> Liste, comparateur <? Super T> C), qui trie la liste spécifiée en fonction de l'ordre généré par le comparateur spécifié. Mais il y a une condition préalable, c'est-à-dire que tous les éléments doivent être comparés en fonction du comparateur fourni, comme suit:
Importer java.util.arraylist; import java.util.collections; import java.util.comparator; import java.util.list; import java.util.map; import java.util.map.entry; import java.util.treemap; public class TreeMapstrest {public static Main (string [] args) {map Treemap <String, String> (); map.put ("a", "dddddd"); map.put ("c", "bbbbbb"); map.put ("d", "aaaaa"); map.put ("b", "cccccc"); // convertit ici map.entrySet () dans List list <map.entry <string, string >> list = new ArrayList <map.entry <string, string >> (map.entryset ()); // Utilisez ensuite un comparateur pour implémenter des collections de tri. for (map.entry <string, string> mapping: list) {System.out.println (mapping.getKey () + ":" + mapping.getValue ()); }}}Les résultats de l'opération sont les suivants:
D: AAAAAC: BBBBBB: CCCCCA: DDDDDD
La méthode Java Map Tri By Key et Value Implémentation est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.