Я работаю над кодом, в котором мне нужно посчитать количество единиц в массиве, теперь я могу сделать это по-старому, перебирая массив, но мне интересно, как это сделать с потоками.
int[] arr = {1,2,4,1,5,1}; //example array
int oneFreq = 0;
Arrays.stream(arr).forEach(x - > {if(x==1) oneFreq++;});
Теперь это дает ошибку времени компиляции: локальные переменные, на которые ссылается лямбда-выражение, должны быть окончательными или эффективно конечными.
Есть ли обходной путь для обновления локальных переменных в потоках? Потому что сделать его окончательным означало бы, что это невозможно