Quelqu'un pourrait-il me dire quand et pourquoi utiliser [~ # ~] treemap [~ # ~] . J'ai parcouru Ce lien = mais n'a pas trouvé ma réponse.
Selon ma pensée, nous utilisons treemap pour obtenir le tri des données en fonction de votre clé et la même chose que nous pouvons également réaliser par d'autres moyens.
Supposons que vous souhaitiez implémenter un dictionnaire et l'imprimer par ordre alphabétique, vous pouvez utiliser une combinaison d'un TreeMap et d'un TreeSet:
public static void main(String args[]) {
Map<String, Set<String>> dictionary = new TreeMap<>();
Set<String> a = new TreeSet<>(Arrays.asList("Actual", "Arrival", "Actuary"));
Set<String> b = new TreeSet<>(Arrays.asList("Bump", "Bravo", "Basic"));
dictionary.put("B", b);
dictionary.put("A", a);
System.out.println(dictionary);
}
Tout le tri se fait automatiquement et il imprime:
{A = [Actuel, Actuaire, Arrivée], B = [Basique, Bravo, Bump]}
Bien sûr, vous auriez pu également trier les structures manuellement, mais l'utilisation de TreeMap/Set peut être plus efficace, réduit le nombre de lignes de code (= le nombre de bogues) et est plus lisible.
C'est un moyen efficace de trier les objets par une clé. Si l'accès aléatoire est également important pour vous, alors TreeMap est la réponse. Avec cette structure de données, vous pouvez répéter dans l'ordre.
Si l'accès aléatoire n'est pas nécessaire, utilisez plutôt un ensemble/sac ou une liste triés.
Une implémentation NavigableMap basée sur un arbre rouge-noir. La carte est triée selon l'ordre naturel de ses clés, ou par un comparateur fourni au moment de la création de la carte, selon le constructeur utilisé.
Cette implémentation garantit un coût en temps log (n) garanti pour les opérations containsKey, get, put et remove. Les algorithmes sont des adaptations de ceux de l'introduction aux algorithmes de Cormen, Leiserson et Rivest.
Utilisez cette structure de données lorsque vous avez besoin d'une clé ordonnée non seulement ascendante, vous pouvez passer comparator
au constructeur TreeMap(Comparator<? super K> comparator)
pour écrire votre propre logique de tri. Il s'agit également d'un type d'arbre de recherche binaire à équilibrage automatique.