Java 8: Cómo convertir cadena a Map <String, String>?

Phuong:

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?

user7:

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}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=177188&siteId=1
Recomendado
Clasificación