У меня есть два списка классов: < /p>
MyClass1 {
String var1;
String var2;
String var3;
}
MyClass2 {
String var1;
String var2;
String var3;
}
< /code>
Каждый из них содержит: < /p>
MyClass1 = [{"one", "3", "6"},{"two", "6", "1"}]
MyClass2 = [{"one", "7", "7"}, {"four", "2", "9"}]
< /code>
Я хочу получить в результате: < /p>
MyClass1 = [{"one", "7", "7"}, {"two", "6", "1"}, {"four", "2", "9"}]
< /code>
Итак, я реализовал этот метод: < /p>
public void mergeListWithRemotely(List list, List remotedList)
{
try {
while (remotedList.iterator().hasNext()) {
AtomicInteger position = new AtomicInteger(-1);
MyClass1 el = (MyClass1) remotedList.iterator().next();
Optional e = list.stream()
.peek(x -> position.incrementAndGet())
.filter(x -> x.getVar1() == el.getVar1())
.findFirst();
if (e.isPresent())
list.set(position.get(), el);
else
list.add(el);
}
} catch (Exception e) {
e.printStackTrace();
}
}
< /code>
Когда я выполняю эту функцию, она не выглядит исполнительницей, потому что кажется висящим, даже не улавливает ошибку. Есть ли возможный способ повысить производительность, чтобы завершить слияние и получить результат?
Подробнее здесь: https://stackoverflow.com/questions/796 ... -with-java