【发布时间】:2019-08-06 09:33:04
【问题描述】:
我在 Java 中工作,我有三个列表,这些列表由填充了字符串 (List) 的数组组成,这些字符串我已经制作了流。第一个列表包含多个数组,其中包含两个字符串(我们称它们为 COUNTRY 和 CITY)。第二个列表具有相同的格式,但由 CITY 和 ROAD 组成,最后一个列表包含具有 5 个字符串(ROAD、A、B、C 和 D)的数组。
我需要做的是将这三个列表合并为一个,其中每个 COUNTRY 根据 CITY 值链接到每个 ROAD(如果它们匹配),然后添加我们从每个 ROAD 获得的所有数据。
所以例如从:
List1: ["COUNTRY1", "CITY1"], [...]
List2: ["CITY1", "ROAD1"], [...]
List3: ["ROAD1", "A", "B", "C", "D"], [...]
到:
output: ["COUNTRY1", "CITY1", "ROAD1", "A", "B", "C", "D"]
需要注意的是,每个国家出现多次不同的城市,每个城市出现多次不同的道路,有时多个城市共享同一条道路,但在5字符串的数组列表中,每条道路都是唯一的.
tl;博士:
我需要将所有道路及其数据与它们关联的城市以及与这些城市关联的国家/地区合并。我对 Java 完全陌生,但有人告诉我 Streams 是要走的路,因为我的数据包含几十 GB。
有没有有效的方法来做到这一点?
【问题讨论】:
-
您的数据需要存储在RDB中
-
请粘贴您尝试过的代码。
-
您确定有足够的内存来容纳所有数据吗?你打算用结果做什么?
-
你可以使用 HashSet 数据结构。它有有用的方法来找到并集、交集或集差。
标签: java arrays string list stream