[英]Java Complex Collection
我有这种格式的数据:(在一个文件中)
key1:fieldname1:fieldvalue1
key1:fieldname2:fieldvalue2
key2:fieldname1:fieldvalue1
我需要将其格式化为:
{key1=[{fieldname1=fieldvalue1,fieldname2=fieldvalue2}],key2=[{fieldname1=fieldvalue1}]}
如您所见,它涉及 Map 和 ArrayList。 我实际上在 Map 和 ArrayList 中需要它。
请建议。
谢谢
查找字符串方法“split”以及如何使用它以及如何逐行读取文本文件。 这样,您可以轻松地逐行解析并获取键、字段名和字段值是什么。
然后你可以对每一行进行如下操作:
如果您的地图中不存在键,请在其中创建空数组。
将项目添加到给定键指定的数组
尝试这个:
String[] str = {"key1:fieldname1:fieldvalue1", "key1:fieldname2:fieldvalue2", "key2:fieldname1:fieldvalue1"};
Map<String, List<String>> map = new HashMap<String, List<String>>();
for (String s: str) {
String[] temp = s.split(":");
if (map.get(temp[0]) == null) {
map.put(temp[0], new ArrayList());
}
map.get(temp[0]).add(temp[1] + "=" + temp[2]);
}
此示例假设fieldname1:fieldvalue2
需要存储为字符串。 你可以得到高层次的想法,然后根据你的要求进行修改
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.