【问题标题】:Store HashMap keys and values to two separate string variables in Java在 Java 中将 HashMap 键和值存储到两个单独的字符串变量中
【发布时间】:2020-07-29 20:34:01
【问题描述】:

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

这是我的代码

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 文件,它使用键作为标题,使用值作为行

【问题讨论】:

    标签: java json csv hashmap


    【解决方案1】:

    您可以使用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
    

    【讨论】:

    • 如果值为Object,则需要一个.map 并转换为String.map(value -&gt; (String) value)
    • 是的,你是对的。我已经更新了 :D 谢谢 :)
    【解决方案2】:
        HashMap<String, Object> yourHashMap = new Gson().fromJson(dynamicJson, HashMap.class);
        LinnkedHashSet<String> keys = new LinnkedHashSet<>();
        LinnkedHashSet<String> values = new LinnkedHashSet<>();
        yourHashMap.forEach((k, v) -> {
                keys.add(k);
                values.add(v);
           });
        System.out.println("keys: "+String.join(",",keys) +
                           "\n values: "+ String.join(",",values));
    

    【讨论】:

      【解决方案3】:

      使用String.join

      HashMap<String, String> yourHashMap = ....
      String keys = String.join(",", yourHashMap.keySet());
      String values = String.join(",", yourHashMap.values());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-12
        相关资源
        最近更新 更多