Если вы переходите с Java, вы можете найти изменчивую версию более знакомой и более простой в использовании при перезаписи кода Java в Scala. Однако в долгосрочной перспективе я (и другие) рекомендую привыкнуть к использованию и работе с неизменными формами классов сбора, где это возможно. Работа с неизменяемыми данными (неизменные коллекции, использующие «val», а не «var» и т. Д.) Более функциональны (как в стиле «функционального программирования») в природе, что является силой изучения Scala. Например, он работает лучше в параллельных ситуациях (не беспокоясь о блокировке/синхронизации доступа к вашей коллекции, чтобы остановить его неожиданно и так далее) и позволяет лучше рассуждать о том, как работает ваш код. Вы не должны слишком усердно переписывать свои классы для работы с неизменяемыми типами коллекций - подумайте о том, как вы используете класс String Java (который также является неизменным).
В долгосрочной перспективе используйте неизменяемый вариант – 4lex1v