在Java8中,以简化的方式将映射元素正确写入CSV
我有一张设计如下的国家地图:在Java8中,以简化的方式将映射元素正确写入CSV,java,csv,java-8,hashmap,Java,Csv,Java 8,Hashmap,我有一张设计如下的国家地图: England=24 Spain=21 Italy=10 etc London=10 Manchester=5 Madrid=7 Barcelona=4 Roma=3 etc 然后,我有一个不同的citiesMap,其设计如下: England=24 Spain=21 Italy=10 etc London=10 Manchester=5 Madrid=7 Barcelona=4 Roma=3 etc 目前,我正在屏幕上打印这些结果: System.
England=24
Spain=21
Italy=10
etc
London=10
Manchester=5
Madrid=7
Barcelona=4
Roma=3
etc
然后,我有一个不同的citiesMap,其设计如下:
England=24
Spain=21
Italy=10
etc
London=10
Manchester=5
Madrid=7
Barcelona=4
Roma=3
etc
目前,我正在屏幕上打印这些结果:
System.out.println("\nCountries:");
Map<String, Long> countryMap = countTotalResults(orderDataList, OrderData::getCountry);
writeResultInCsv(countryMap);
countryMap.entrySet().stream().forEach(System.out::println);
System.out.println("\nCities:\n");
Map<String, Long> citiesMap = countTotalResults(orderDataList, OrderData::getCity);
writeResultInCsv(citiesMap);
citiesMap.entrySet().stream().forEach(System.out::println);
您的
resultMap.entrySet()
是一个集
。然后将其转换为流
,然后在此流上运行.map。因此,您提供的映射器需要将类型为map.Entry
的对象映射到您喜欢的任何对象。但是您将convertToCSV方法传递给它,它映射字符串数组
您的代码尝试使用逗号(收集器。连接(“,”
)进行连接,但所需的输出包含零个逗号
感觉有两件事正在发生:
收集器。在这种情况下加入(“,”
)毫无意义,并且您试图使用映射字符串数组的映射函数映射字符串、Long
的条目,这显然不起作用注意:列出
key=value
对的文本文件通常不称为CSV文件。我已经删除了编译错误,但无法将其写入CSV。CSV文件已正确创建,但未向我写入字符。拜托,你能帮个忙吗?完成后,你有没有在printwriter上调用.close()?