Хотел бы получить информацию о параллельных стримах. Если смотреть прям под мой кейс, то у меня есть списки в котором хранятся объекты с BigDecimal
Приведу один из примеров
private static BigDecimal findAvg(List<Record> records) {
return BigDecimal.valueOf(records.stream()
.map(Record::getWithdrawal)
.reduce(BigDecimal.ZERO, BigDecimal::add)
.doubleValue() / records.size());
}
Или приведу пример с parallelStream()
var records = dayRecords.parallelStream()
.filter(r -> r.getDescription().equals(description))
.collect(Collectors.toList());
В этом случае бывает программа не может остановиться. Пока не разобрался почему. Цель этого кейса, это приток производительности и потребление памяти с малом количестве.
В общем какие Best Practice есть с parallelStream() и с чем его едят? Какие лучше Collections выбирать для них?