Reputation: 1293
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 important.
Upvotes: 17
Views: 5498
Reputation: 12852
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
}
Upvotes: 13
Reputation: 40461
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.
Upvotes: 15