2016-11-25 71 views
0

我们如何将多值地图转换为CSV,我可以使用单个键值地图。但面对多值地图的问题。 我用这个将多值地图转换为CSV

private String getCSVRow(Set<String> headers, Map<String, String> map) { 
    List<String> items = new ArrayList<String>(); 
    for (String header : headers) { 
     String value = map.get(header) == null ? "" : map.get(header).replace(",", ""); 
     items.add(value); 
    } 
    return StringUtils.join(items.toArray(), ","); 
} 

转换键值在这一点,如果我想提出Map<String, List<String>>为i参数我会怎么做呢?

回答

0

创建一个方法,将List转换为String,并从for循环调用该方法。所以你的代码变成

for (String header : headers) {  
    String value = map.get(header) == null ? "" : generateStringFromList(map.get(header)); 
     items.add(value); 
} 


private String generateStringFromList(List<String> list) { 
     // create the code here 
}