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.
Scala has no primitives in Java. In other words, when coding in Scala, everything is an object. However, the compiler will compile your code down to primitive math (if possible), so you don't lose performance.
Delta Lake with Apache Spark using ScalaThere are no primitive types like in Java. This means that you can call methods on an Int, Long, etc.
Primitives are used to create more complex pieces of code. Primitive types are also known as built-in types or basic types.
Since primitive types cannot be used in Collections or Generics, each time i is added to numbers a new Integer object is created.
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
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With