Если вы не против использовать сторонний lib ( Vavr (ранее известный как Javaslang) ), вы можете использовать мощные новые неизменные коллекции:
// import javaslang.collection.*;
Map map = list.toMap(choice -> Tuple.of(choice.getName(), choice));
Там также много методов для преобразования Java-коллекций вперед и назад.
Пожалуйста, прочитайте подробнее о новых коллекциях здесь.
Отказ от ответственности: я являюсь создателем Vavr.
Посмотрите на этот пример Plnkr
Переменная this
сильно отличается timesCalled
с каждым нажатием кнопки увеличивается только на 1. Ответ на мой личный вопрос:
.click( () => { } )
и
.click(function() { })
создают одинаковое количество функции при использовании в цикле, как вы можете видеть из подсчета Guid в Plnkr.