首页 > 解决方案 > 将 HashMap 键和值存储到 Java 中的两个单独的字符串变量中

问题描述

我需要将所有键存储到单个字符串变量中,每个键用逗号分隔,并且我需要对所有值执行相同操作

这是我的代码

HashMap<String, Object> yourHashMap = new Gson().fromJson(dynamicJson, HashMap.class);
    
yourHashMap.forEach((k, v) -> {
    //System.out.println("Key: " + k );
    String result = k + ",";
    System.out.println("Keys : "+result);
});

实际输出键:名称,消息,

预期输出:键:名称,消息

值:“消息 1”、“消息内容”

使用这些输出,我将创建 CSV 文件,它使用键作为标题,使用值作为行

标签: javajsoncsvhashmap

解决方案


您可以使用Collectors.joining()逗号分隔

String keys = map.keySet().stream().collect(Collectors.joining(", "));
String values = map.values().stream().map(obj -> String.valueOf(obj)).collect(Collectors.joining(", "));

,main函数

    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("key1", "val1");
        map.put("key2", "val2");
        map.put("key3", "val3");
        map.put("key4", "val4");
        String keys = map.keySet().stream().collect(Collectors.joining(", "));
        String values = map.values().stream().map(obj -> String.valueOf(obj)).collect(Collectors.joining(", "));
        System.out.println("Keys: " + keys);
        System.out.println("Values: " + values);
    }

,output

Keys: key1, key2, key3, key4
Values: val1, val2, val3, val4

推荐阅读