Par exemple, l'implémentation sous-jacente de TreeMap est basée sur des arbres rouge-noir, où chaque nœud est Entrée <K, V>:
classe finale statique Entrée <K, V> implémente Map.Entry <K, V> { // clé, val est la clé K stockée dans les données d'origine ; valeur V; // L'enfant gauche du nœud est défini Entrée <K, V> gauche ; // L'enfant droit du nœud est défini Entrée <K, V> droite; // Par ce nœud, vous pouvez revenir en arrière et trouver votre père Entrée <K, V> parent; // Le nœud noir par défaut, réglable couleur booléenne = NOIR; / ** * Constructeur * / Entrée (clé K, valeur V, entrée <K, V> parent) { this.key = clé; this.value = valeur; this.parent = parent; } / ** * Récupère la valeur de clé du nœud * / public K getKey () {clé de retour;} / ** * Récupère la valeur du nœud int keyHash = (key == null? 0: key.hashCode () ); * / public V getValue () {valeur de retour;} / ** * 用 新 值 替换 当前 值 , 并 返回 当前 值 * / public V setValue (valeur V) { V oldValue = this.value; this.value = valeur; return oldValue; } public boolean equals (Object o) { if (! (o instanceof Map.Entry)) return false; Map.Entry <?,?> E = (Map.Entry <?,?>) O; return valEquals (key, e.getKey ()) && valEquals (value, e.getValue ()); } public int hashCode () { int valueHash = (value == null? 0: value.hashCode ()); return keyHash ^ valueHash; } public String toString () { return key + "=" + value; } }