Por ejemplo, la implementación subyacente de TreeMap se basa en árboles rojo-negros, donde cada nodo es Entrada <K, V>:
la clase final estática La entrada <K, V> implementa Map.Entry <K, V> { // clave, val es la clave K almacenada en los datos originales ; valor V; // El elemento secundario izquierdo del nodo se define Entrada <K, V> izquierda ; // El elemento secundario derecho del nodo se define Entrada <K, V> derecho; // A través de este nodo puede regresar y encontrar a su padre Entrada <K, V> primario; // Por defecto, es un nodo negro, ajustable color booleano = NEGRO; / ** * Constructor * / Entrada (clave K, valor V, Entrada <K, V> primaria) { this.key = clave; this.value = value; this.parent = parent; } / ** * Obtener el valor clave del nodo * / public K getKey () {return key;} / ** * Obtener el valor del nodo * / public V getValue () {valor de retorno;} / ** * 用 新 值 替换 当前 值 , 并 返回 当前 值 * / public V setValue (valor V) { V oldValue = this.value; this.value = value; 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 keyHash = (key == null? 0: key.hashCode () ); int valueHash = (value == null? 0: value.hashCode ()); retorno keyHash ^ valueHash; } public String toString () { tecla de retorno + "=" + valor; } }