java параллельный поток заполняет список из другого с таким же типом объекта - PullRequest
0 голосов
/ 04 мая 2020

У меня есть список объектов, все мои объекты имеют только идентификатор, все остальные метаданные отсутствуют, поэтому для их заполнения мне нужно получить данные по идентификатору из 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, но та же проблема

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