Can I use primitives in Scala?
The use case is for storing billions of ints, so the difference between 4 bytes (for an int) and 16 bytes (for an Integer) is import
If you want Scala to store unboxed primitives, you could use Array[Int]
but refrain from using any cool Scala collection method on it (because it will force boxing).
If you look for immutable collections of primitives types, you can have a look at Debox, which provides specialised Buffers, Sets and Maps. The project is still evolving but it is very promising.
You can use the @specialised
annotation to let the compiler create specialised instances of a class for you. See this article.
class Container[@specialized(Int) T](value: T) {
def apply(): T = value
}