Lista de combinación de datos de procesamiento de mapas Las propiedades internas del objeto de lista cambian cuando cambia el valor en el mapa

Necesito procesar los datos de la tabla durante el desarrollo. Escribí el siguiente código: Inserte la descripción de la imagen aquí
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:
Inserte la descripción de la imagen aquí
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

Supongo que te gusta

Origin blog.csdn.net/Beatingworldline/article/details/113477407
Recomendado
Clasificación