For performance reason I would like to use a forEach loop of a parallel Lambda stream in order to process an instance of a `Collection` in Java. As this runs in a background `Service` I would like to use the `updateProgress(double,double)` method in order to inform the user about the current progress.

In order to indicate the current progress I need a certain progress indicator in form of a `Integer` counter. However, this is not possible as I can only access `final` variables within the Lambda expression.

Code example see below, `Collection` is only a place holder for any possible instance of a `Collection`:

```
int progress = 0;
Collection.parallelStream().forEach(signer -> {
   progress++;
   updateProgress(progress, Collection.size());     
});

```

I'm aware that I can solve this problem by using a simple for-loop. However, for performance reason it would nice to solve it in this way.

Does anybody know a more or less neat solution to this?