Java 8 forEach не может получить счет в лямбда-выражении - PullRequest
0 голосов
/ 04 октября 2018

Мой код:

    int count = 0;
    contactVisits.keySet().forEach(
            key -> {
                count++; //cannot reach count here 

                //.doing my stuff......

                // ..
            }
    );

мне нужно считать в лямбда-выражении, считая с помощью переменной "count", но netbeans говорит о проблеме типа "локальные переменные, на которые ссылается лямбда-выражение, должны быть окончательными илиэффективное окончание "

Есть ли способ получить индекс индекса карты в лямбда-выражении или получить переменную снаружи?

1 Ответ

0 голосов
/ 04 октября 2018

Лучший способ - использовать метод size () на вашей карте.

Вы также можете использовать atomicinteger вместо int и вызывать getAndIncremend вместо count ++, однако это неэффективно.

Существуеттакже stream (). count (), но я думаю, что первый подход - лучший.

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