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 IntStream
para 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 split
que sería,
Map<Integer, String> counterToStr = IntStream.range(0, strings.length)
.boxed()
.collect(Collectors.toMap(Function.identity(), i -> str.charAt(i) + ""));