Неправильно ли добавлять элементы в список java с параллельным потоком? - PullRequest
0 голосов
/ 20 марта 2020

Лучше ли использовать некоторые из многопоточных коллекций? Суть вопроса заключается только в генерации и добавлении элементов в список.

public List<BankDetailsDTO> generateBankDetailsDTOs(int amount) {
    List<BankDetailsDTO> result = new ArrayList<>();
    IntStream.range(0, amount).parallel().forEach(index -> {
        result.add(new BankDetailsDTO(bankDetailsDTOCounter.getAndIncrement(),
            faker.company().name(),
            faker.finance().iban(),
            faker.finance().bic(),
            faker.finance().iban()));
        });
        return result;
    }
}

Обновление Хорошо, это была плохая идея.

    public List<BankDetailsDTO> generateBankDetailsDTOs(int amount) {
        List<BankDetailsDTO> result = Collections.synchronizedList(new ArrayList<>());
        IntStream.range(0, amount).parallel().forEach(index -> {
            result.add(new BankDetailsDTO(bankDetailsDTOCounter.getAndIncrement(),
                    faker.company().name(),
                    faker.finance().iban(),
                    faker.finance().bic(),
                    faker.finance().iban()));
        });
        return result;
    }
...