【发布时间】:2018-03-06 19:48:05
【问题描述】:
我有一个以下格式的 json 数组列表,顺序相同。我不能指望排序中的数据,它可能会有所不同,Company-x 可能会以任何顺序出现。
Company-1 - {Branch-1, Branch-4, Branch-8}
Company-2 - {Branch-9, Branch-11, Branch-22}
Company-4 - {Branch-45, Branch-64, Branch-18}
Company-1 - {Branch-10, Branch-43, Branch-82}
Company-2 - {Branch-15, Branch-44, Branch-86}
此外,这可能会增加超过 10,000 行。我需要在不影响性能的情况下制作一个键值对。我需要将上述数据存储在 HashMap 中。 (地图)。
例如我需要如下格式的结果:
[Company-1,{Branch-1, Branch-4, Branch-8,Branch-10, Branch-43, Branch-82}]
[Company-2,{Branch-9, Branch-11, Branch-22,Branch-15, Branch-44, Branch-86}]
[Company-4,{Branch-45, Branch-64, Branch-18}]
....etc.
如何在java中实现这一点?
这里是json格式。键是 CID,值是(Branch_ID 和名称)
[
{
"CID": "4545",
"BRANCH_ID": "0041",
"Name": "BID41",
},
{
"ID": "4546",
"BRANCH_ID": "0051",
"Name": "BID51",
},
{
"ID": "4545",
"BRANCH_ID": "0042",
"Name": "BID42",
},
{
"ID": "4546",
"BRANCH_ID": "0052",
"Name": "BID52",
},
{
"ID": "4545",
"BRANCH_ID": "0043",
"Name": "BID43",
},
{
"ID": "4545",
"BRANCH_ID": "0053",
"Name": "BID53",
}
]
【问题讨论】:
-
“不影响性能”是什么意思?
-
您编写了哪些代码来尝试解决您的问题?您使用的是什么 JSON 解析工具?您粘贴的示例不是有效的 JSON,那么您的实际 JSON 是什么样的?您已经拥有哪些数据结构/POJO?您提供给我们的信息不足以帮助您。
-
我正在尝试实现 for 循环,但对将值推送到 Map 中的现有键感到困惑。我也没有 JSON 的问题,它只是一个有效的 JSON。
-
@teolandon ,我期待大量数据。因此在转换为 Map 时不应该花费更多时间进行迭代。
-
调用 myHashmap.get(existingKey).add(newBranch),如果键已经存在,则使用存储的值并简单地追加到现有集合。
标签: java performance hashmap key-value-observing linkedhashmap