Maison >Java >Javacommencer >Java peut-il trier les clés d'une carte ?

Java peut-il trier les clés d'une carte ?

(*-*)浩
(*-*)浩original
2019-11-19 11:52:552194parcourir

Java peut-il trier les clés d'une carte ?

Map est une interface de collection de paires clé-valeur. Ses classes d'implémentation incluent principalement : HashMap, TreeMap, Hashtable et LinkedHashMap, etc. (Apprentissage recommandé : cours java)

TreeMap : Implémentation de NavigableMap basée sur l'arbre rouge-noir (Red-Black tree), la carte est triée selon l'ordre naturel de ses clés, ou basé sur la création d'une map Le Comparator fourni est trié en fonction du constructeur utilisé.

Map.Entry renvoie la vue Collections.

tri par clé

TreeMap est par ordre croissant par défaut. Si nous devons changer la méthode de tri, nous devons utiliser un comparateur : Comparator. Comparator est une interface de comparaison qui peut trier des objets de collection ou des tableaux. L'implémentation de la méthode publique compare(T o1, To2) de cette interface peut réaliser le tri, comme suit :

import java.util.Comparator;
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 TreeMap<String, String>(
                new Comparator<String>() {
                    public int compare(String obj1, String obj2) {
                        // 降序排序
                        return obj2.compareTo(obj1);
                    }
                });
        map.put("b", "ccccc");
        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(key + ":" + map.get(key));
        }
    }
}

Les résultats en cours d'exécution sont les suivants : :

d:aaaaa
c:bbbbb
b:ccccc
a:ddddd

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que signifie Java ?Article suivant:Que signifie Java ?