La conversión de la cadena al mapa <Integer, String> en Java 8

Rahul Gupta:

¿Puede alguien por favor me guía sobre cómo alcanzar el siguiente utilizando Java 8. No sé cómo conseguir ese contador como la clave

String str = "abcd";

Map<Integer,String> map = new HashMap<>();

String[] strings = str.split("");

int count =0;
for(String s:strings){
    map.put(count++, s);// I want the counter as the key
}
Ravindra Ranwala:

Se puede utilizar IntStreampara hacer esto lo hace. Utilice el valor entero como la clave y el valor correspondiente en la matriz de cadenas en ese índice como el valor del mapa.

Map<Integer, String> counterToStr = IntStream.range(0, strings.length)
    .boxed()
    .collect(Collectors.toMap(Function.identity(), i -> strings[i]));

Otra alternativa que evita la necesidad de splitque sería,

Map<Integer, String> counterToStr = IntStream.range(0, strings.length)
    .boxed()
    .collect(Collectors.toMap(Function.identity(), i -> str.charAt(i) + "")); 

Supongo que te gusta

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