2016-07-06 3 views
-3

У меня есть два ArrayList, которые я получаю после выполнения моего запроса БД, результат запроса возвратит много элементов (> 500 000 элементов). Мне нужно сделать слияние между результатами для объединения двух списков для создания Java-объекта. Проблема в том, как он мог бы эффективно слить два списка из двух разных баз данных? Результат Списки, как это:Java Merge Big List

Список

Id1, Name1, Description1 
Id2, Name2, Description2 
Id3, Name3, Description3 

Список B

Id1, Position1 
Id2, Position2 
Id3, Position3 

Результат

Id1, Name1, Description1, Position1 
Id2, Name2, Description2, Position2 
Id3, Name3, Description3, Position3 

Спасибо!

+5

Что такое "BBDD запрос"? Если вы имеете в виду запрос из базы данных, то вы должны позволить базе данных выполнить эту работу; перепишите свой SQL-запрос, чтобы база данных вернула результат, который вам нужен, вместо того, чтобы делать два запроса и присоединяться к вашей собственной программе. – Jesper

+1

BBDD-запрос - вероятно, версия запроса Бэндера в паркинсоне –

+0

Извините, я делаю два разных запроса в двух разных базах данных: список A -> DB A и listB -> DB B –

ответ

0

Если приведенное ниже условие:

  1. ArrayLists держать разделенную запятую строковых объектов
  2. поле идентификатора происходит сначала во втором списке и не содержит символ запятой
  3. графа и последовательность пункты в обоих списках совпадают.

Тогда следующий код должен выполнить слияние.

ArrayList<String> listA = new ArrayList<String>(); 
listA.add("Id1, Name1, Description1"); 
listA.add("Id2, Name2, Description2"); 
listA.add("Id3, Name3, Description3"); 

ArrayList<String> listB = new ArrayList<String>(); 
listB.add("Id1, Position1"); 
listB.add("Id2, Position2"); 
listB.add("Id3, Position3"); 

ArrayList<String> mergedList = new ArrayList<String>(); 
Integer index=-1; 
for(String listAEntry : listA){ 
    index++; 
    mergedList.add(listAEntry.concat(listB.get(index).replaceFirst(".*,", ","))); 
} 

Вот содержание объединенного списка:

Id1, Name1, Description1, Position1 
Id2, Name2, Description2, Position2 
Id3, Name3, Description3, Position3