Вариант использования - для хранения миллиардов int, поэтому разница между 4 байтами (для int) и 16 байтами (для Integer) важна.
Ответ 1
Если вы хотите, чтобы Scala сохранял несвязанные примитивы, вы можете использовать Array[Int], но воздержитесь от использования какого-либо классного метода коллекции Scala на нем (потому что это заставит бокс).
Если вы ищете неизменные коллекции типов примитивов, вы можете посмотреть Debox, который предоставляет специализированные буферы, наборы и карты, Проект все еще развивается, но он очень перспективен.
Ответ 2
Вы можете использовать аннотацию @specialised, чтобы компилятор создал для вас специализированные экземпляры класса. См. в этой статье.
class Container[@specialized(Int) T](value: T) {
def apply(): T = value
}