Tengo un mapa:
Map<String, String> utilMap = new HashMap();
utilMap.put("1","1");
utilMap.put("2","2");
utilMap.put("3","3");
utilMap.put("4","4");
He convertido en una cadena:
String utilMapString = utilMap
.entrySet()
.stream()
.map(e -> e.toString()).collect(Collectors.joining(","));
Out put: 1=1,2=2,3=3,4=4,5=5
Cómo convertir a utilMapString Mapa de Java8? ¿Quién me puede ayudar?
Dividir la cadena de ,
conseguir las entradas individuales del mapa. A continuación, partirlos por =
obtener la clave y el valor.
Map<String, String> reconstructedUtilMap = Arrays.stream(utilMapString.split(","))
.map(s -> s.split("="))
.collect(Collectors.toMap(s -> s[0], s -> s[1]));
Nota: Como se ha señalado por Andreas @ en los comentarios , esto no es un método fiable para convertir entre un mapa y una cadena
EDITAR : Gracias a Holger para esta sugerencia.
Utilizar s.split("=", 2)
para asegurarse de que la matriz nunca es más grande que dos elementos. Esto será útil para no perder el contenido (cuando el valor de cuenta =
)
Ejemplo: cuando la cadena de entrada es "a=1,b=2,c=3=44=5555"
obtendrá{a=1, b=2, c=3=44=5555}
Anterior (sólo usar s.split("=")
) dará{a=1, b=2, c=3}