Подобно Andreas_D, вот еще один способ снять кожу с этой кошки.
Я хотел бы сказать, что я все еще согласен с Дори, это действительно похоже на данные базы данных. Я бы порекомендовал вам использовать базу данных и избавить себя от головной боли при решении этой проблемы, которая уже была решена.
Либо это, либо работайте с владельцем API, который вы используете для получения этих данных, и заставьте их использовать правильный запрос к базе данных, чтобы объединить их, прежде чем они когда-либо попадут к вам.
Отказ от этого, лучше всего сделать что-то подобное, чтобы добраться до этой точки, чтобы вы могли использовать утилиты hashmap.
....
HashMap<String, HashMap<String, String>> unifiedMap = new HashMap<String, HashMap<String, String>>();
for (HashMap<String, String> teamMap : teamList) {
String teamId = teamMap.get("TeamID");
HashMap<String, String> mapFromUnified = unifiedMap.get(teamId);
if (mapFromUnified == null) {
unifiedMap.put(teamId, teamMap);
} else {
for (String key : teamMap.keySet()) {
// this will be a race condition, the last one in wins - good luck!
mapFromUnified.put(key, teamMap.get(key));
}
}
}
for (HashMap<String, String> teamMap : chanceList) {
String teamId = teamMap.get("TeamID");
HashMap<String, String> mapFromUnified = unifiedMap.get(teamId);
if (mapFromUnified == null) {
unifiedMap.put(teamId, teamMap);
} else {
for (String key : teamMap.keySet()) {
// this will be a race condition, the last one in wins - good luck!
mapFromUnified.put(key, teamMap.get(key));
}
}
}
....