Necesito procesar los datos de la tabla durante el desarrollo. Escribí el siguiente código:
pero descubrí que después de ejecutar name.put, ella claramente no operaba en el objeto List nombre de lista, pero tenía datos, lo que condujo a errores lógicos posteriores (la prueba de punto de interrupción el diagrama está al final del artículo)
Luego use el siguiente código para probar:
public static void main(String[] args) {
List<Map> list = new ArrayList();
Map map = new HashMap();
list.add(map);
map.put("aa", 11);
map.put("bb", 11);
map.put("cc", 11);
list.forEach(m->System.out.println(m));
}
Resultado de la salida:
Después de buscar en Internet, encontré la razón:
Excepto por el tipo básico de mapa, que es la transferencia de valor de los ocho clásicos, el resto son todas transferencias de direcciones de referencia.
Porque la transferencia de direcciones de referencia (lista) almacenada en el valor del mapa ocurre, cuando ocurren las propiedades internas del objeto de lista Al cambiar, el valor en el mapa cambia