首页 > 解决方案 > 将 HashMap 写入 CSV 文件

问题描述

我有一个带有 String 键和 List(String) 作为值的哈希图。

例如:

Key | Values
John | GroupName1,GroupName2,GroupName3
Nick | Groupname4,GroupName1

我想将此哈希图写入 csv 文件,以便我的 csv 文件包含如下行:

John,GroupName1,GroupName2,GroupName3    
Nick,Groupname4,GroupName1

我试过了:

Map<String, List<String>> usersmap = (Map<String, List<String>>) model.get("users"); //this is my map
StringWriter output = new StringWriter();
ICsvListWriter listWriter;
listWriter = new CsvListWriter(output, CsvPreference.STANDARD_PREFERENCE);
for (Map.Entry<String, List<String>> entry : usersmap.entrySet()) {
    listWriter.write(entry.getKey(), entry.getValue());
}

但这对我来说似乎不对。

标签: javacsvhashmapsupercsv

解决方案


尝试使用将您的列表转换为逗号分隔的字符串String.join(...)

listWriter.write(entry.getKey(), String.join(",", entry.getValue());

Java 文档:

https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.Iterable-


推荐阅读