Tabla de contenido
Iterador -> forEach (java5) -> Lambda (java8)
Formas de recorrer el mapa
1. Clave o valor de poligonal
// 遍历key
for (String key : map.keySet()) {
System.out.println(key);
}
// 遍历value
for (String value : map.values()) {
System.out.println(value);
}
2. Use Iterator para recorrer (eliminar elementos)
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
System.out.println(entry.getKey() + " : " + entry.getValue());
}
3. Use entrySet para atravesar (mayor eficiencia que Lambda)
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
4. Utilice expresiones Lambda
map.forEach((k, v) -> System.out.println(k + " : " + v));
Manera de elegir
Enlace original: https://blog.csdn.net/yueaini10000/article/details/78933289
- Si solo obtiene la clave o el valor, se recomienda utilizar keySet o valores
- Si necesita tanto la clave como el valor, se recomienda utilizar entrySet
- Si necesita eliminar elementos durante el proceso transversal, se recomienda el iterador
- Si necesita agregar elementos durante el proceso de recorrido, puede crear un nuevo mapa temporal para almacenar los nuevos elementos y, una vez completado el recorrido, coloque el mapa temporal en el mapa original.
Cadena al mapa (jackson)
ObjectMapper mapper = new ObjectMapper();
TypeFactory factory = mapper.getTypeFactory();
// 类型:map,key,value
MapType mapType = factory.constructMapType(HashMap.class, String.class, String.class);
try {
HashMap<String, String> map = mapper.readValue(str, mapType);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
Asignar a cadena
try {
String str = new ObjectMapper().writeValueAsString(map);
} catch (JsonProcessingException e) {
e.printStackTrace();
}