У меня есть список объектов, все мои объекты имеют только идентификатор, все остальные метаданные отсутствуют, поэтому для их заполнения мне нужно получить данные по идентификатору из API остальных, поэтому я использовал параллельный поток для l oop через массив и сделал вызов API и получил все метаданные, которые я хочу сейчас. Я хочу вернуть новый ответ или заполнить старый список и вернуть его.
например:
private List<Person> populatePersonsMetadata(List<Person> persons) {
List<Person> collect = persons.parallelStream().map(p -> {
Integer id = Integer.valueOf(p.getId());
CsgJsonResponse generateReport = null;
generateReport = csgService.generateReport(criteria);
List<Peson> populateCSGReportData = populatePersonsData(generateReport);
return populateCSGReportData;
}).flatMap(list -> list.stream()).collect(Collectors.toList());
return collect;
}
Это работает нормально, когда я тестирую с небольшим количеством данных, но когда дело доходит до больших данных, это дублирует результаты, я попытался использовать SET, но та же проблема