java - 将 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 文件,它使用键作为标题,使用值作为行
解决方案
您可以使用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
推荐阅读
- tensorflow - 为什么 GPU 利用率为 100% 时 GPU 功耗为 40%?
- java - micronaut petstore 一个从 java 到 groovy 的代码段
- docker - Hyperledger Fabric docker-compose CORE_PEER_GOSSIP_BOOTSTRAP
- javascript - Sort() 不适用于按字母顺序排列的列表
- installshield - InstallShield 在取消删除后部分删除程序
- mongodb - 比较MongoDB中的日期
- python - ImportError:无法从“模块”导入名称“变量”
- android - APK:与版本号(SO.XY)相关的本机库名称问题
- java - 在 Java 包上使用“ls”命令时出现不支持的方案错误
- firebase - GCM 到 FCM 迁移:客户订阅问题