首页 > 解决方案 > 将字符串转换为地图在 Java 8 中

问题描述

有人可以指导我如何使用 Java 8 实现以下目标。我不知道如何将该计数器作为键

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
}

标签: javajava-8hashmap

解决方案


你可以用它IntStream来完成这件事。使用整数值作为键,并将该索引处的字符串数组中的相关值作为映射的值。

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

避免需要的另一种选择split是,

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

推荐阅读