I looked at the source code. If I understand it correctly, it loops through the original collection and creates a new collection in Java, which adds additional computation time.
If my understanding is correct, then I have a follow up question:
I have an ArrayBuffer. If I want to use it in both Scala and Java, and avoid the asJava call penalty. I can think of using Array in Scala which is type in Java. Are there any other array/list collections that are native to both Scala and Java?
asJava does not require iterating and copying the collection. It simple wraps the scala collection with a class that conforms to the java interface.
It is also possible to use any java collection from scala and any scala collection from Java. This is not normally recommended though since the interfaces are quite different.