Как объединить несколько списков строковых массивов в Java? - PullRequest
0 голосов
/ 15 марта 2019

Я работаю на Java, и у меня есть три списка, состоящих из массивов, заполненных строками (List), из которых я создал потоки.Первый список содержит несколько массивов с двумя строками внутри (назовем их COUNTRY и CITY).Второй список имеет тот же формат, но состоит из CITY и ROAD, а затем окончательный список содержит массивы с 5 строками (ROAD, A, B, C и D).

Что мне нужно сделать, это объединить эти три списка в один, где каждая СТРАНА связана с каждой ДОРОГОЙ на основе значения CITY, если они совпадают, а затем добавить все данные, которые мы имеем из каждой ДОРОГИ.

Так, например, переходя от:

List1: ["COUNTRY1", "CITY1"], [...]
List2: ["CITY1", "ROAD1"], [...]
List3: ["ROAD1", "A", "B", "C", "D"], [...]

к:

output: ["COUNTRY1", "CITY1", "ROAD1", "A", "B", "C", "D"]

, важно отметить, что каждая страна появляется несколько раз с разными городами, и каждый город появляется несколько разс разными дорогами, иногда несколько городов разделяют одну и ту же дорогу, но в списке массивов с 5 строками каждая дорога уникальна.

tl; dr:

Мне нужно объединить все дороги иих данные в города, с которыми они связаны, и в страны, связанные с этими городами.Я полностью новичок в Java, но мне сказали, что потоки - это путь, поскольку мои данные содержат пару десятков ГБ.

Есть ли эффективный способ сделать это?

1 Ответ

0 голосов
/ 15 марта 2019

Если вы хотите остаться на чистой Java, преобразуйте свои списки в java.util.Map каждый и используйте страны, города и дороги в качестве ключей.Затем вы можете сделать то, что вы описали в устной форме, например, перебрать List3 и выбрать пропущенные значения из вышеупомянутых карт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...