![](/img/trans.png)
[英]How do I Combine/Merge two Map of Map of Lists (Map<String, Map<Enum, List<String>>>) in Java 8
[英]How do i merge multiple lists of string arrays in Java?
我在 Java 中工作,我有三個列表,它們由填充了字符串(列表)的數組組成,其中我已經創建了流。 第一個列表包含多個數組,其中包含兩個字符串(我們稱它們為 COUNTRY 和 CITY)。 第二個列表具有相同的格式,但由 CITY 和 ROAD 組成,最后一個列表包含具有 5 個字符串(ROAD、A、B、C 和 D)的數組。
我需要做的是將這三個列表合並為一個列表,如果它們匹配,則根據 CITY 值將每個 COUNTRY 鏈接到每條 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。
有沒有一種有效的方法來做到這一點?
如果您想保持純 Java,請將您的列表分別轉換為java.util.Map
並使用國家、城市和道路作為鍵。 然后你可以做你口頭描述的事情,例如遍歷 List3 並從上述地圖中選擇缺失值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.