"Thinking in Java" 4th Edition P519 Página Deakhashmap Capítulo de lectura Notas
Deakhashmap se usa para ahorrar débiles, una estructura llamada recolector de basura Yunxun limpia automáticamente las teclas y valores.
Al agregar claves y valores, la asignación los envolverá automáticamente con WeilwReference.
Ver código fuente JDK,
public v put (k key, v value) {object k = MaskNull (key); int h = hash (k); entry <k, v> [] tab = getTable (); int i = indexfor (h, tab.length); para (entrada <k, v> e = tab [i]; e! = null; e = e.next) {if (h == e.hash && eq (k, ger OldValue = e.Value; if (value! = OldValue) e.Value = value; return OldValue;}} modCount ++; Entry <k, v> e = tab [i]; tab [i] = new Entry <> (k, valor, cola, h, e); if (++ tamaño> = threshold) RESEA La new Entry<>(k, value, queue, h, e) usa ReferenceQueue
/ ** * cola de referencia para débiles certificados */ private final referenceuee <ject> queue = new RefectionQueue <> ();
Haga clic en el constructor de new Entry , ingrese el nivel superior de Super para ver.
/** * Crea una nueva referencia débil que se refiere al objeto dado y está * registrado con la cola dada. * * @param Objeto de referencia La nueva referencia débil se referirá * @param Q La cola con la que se debe registrar la referencia, * o <tt> null </tt> si el registro no es necesario */ public WeubReference (t referencia, referencia <? Super t> q) {super (referente, q); } Aquí new Entry también construye un objeto de Débtima
prueba:
paquete com.anialy.test.data_structure.map; import java.util.iterator; import java.util.weakhashmap; public class weakhashMaptest {public static void main (string [] strs) {débilhmap wMap = new DeakhashMap <, objeto> (); final intize = 10; string [] strs) i <size; wmap.keyset (). iterator (); while (iter.hasnext ()) {system.out.println (wmap.get (iter.next ()));}}}Se puede esperar que, en parte, ya que la cadena [] retiene referencias débiles, las salidas son todas el intervalo 3.
Lo anterior es todo el contenido de este artículo sobre el análisis de la instancia de la programación Java de Weakhashmap, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!