繁体   English   中英

Java 复杂集合

[英]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”以及如何使用它以及如何逐行读取文本文件。 这样,您可以轻松地逐行解析并获取键、字段名和字段值是什么。

然后你可以对每一行进行如下操作:

  1. 如果您的地图中不存在键,请在其中创建空数组。

  2. 将项目添加到给定键指定的数组

尝试这个:

    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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM