The easiest way to convert a Java Collection to a Scala equivalent is using JavaConversions, since Scala 2.8.. Estas envolturas de retorno defs implícitas para la colección contenida de Java.Cómo crear una colección paralela de Scala a partir de una colección de Java
Scala 2.9 introdujo colecciones paralelas, donde las operaciones en una colección se pueden ejecutar en paralelo y el resultado se recoge más tarde. Esto es fácil de implementar, la conversión de una colección existente en uno paralelo es tan simple como:
myCollection.par
Pero hay un problema con el uso de 'par' en colecciones convertidos a partir de colecciones de Java utilizando JavaConversions. Como se describe en Parallel Collection Conversions, inherentemente colecciones secuenciales se 'forzado' en una nueva colección paralelo mediante la evaluación de todos los valores y la adición de ellos a la nueva colección paralelo:
Otras colecciones, tales como listas, colas o arroyos, son inherentemente secuencial en el sentido de que se debe acceder a los elementos uno después de el otro. Estas colecciones se convierten a sus variantes paralelas copiando los elementos en una colección paralela similar. Para el ejemplo , una lista funcional se convierte en una secuencia paralela estándar inmutable , que es un vector paralelo.
Esto causa problemas cuando se pretende evaluar holgadamente la colección original de Java. Por ejemplo, si solo se devuelve un Iterable de Java, luego convertido a un Iterable de Scala, no hay garantía de que el contenido de Iterable esté destinado a ser accedido con entusiasmo o no. Entonces, ¿cómo debería crearse una colección paralela a partir de una colección Java sin sostener el costo de evaluar cada elemento? Este es el costo que trato de evitar al usar una colección paralela para ejecutarlos en paralelo y con suerte 'tomar' los primeros n resultados que se ofrecen.
De acuerdo con Parallel Collection Conversions hay una serie de tipos de colección que cuestan tiempo constante, pero no parece haber una manera de obtener una garantía de que JavaConversions pueda crear estos tipos (p. Ej., Se puede crear 'Set', pero es eso un 'HashSet'?).
Tenga en cuenta que sería una mejor idea usar JavaConverters en lugar de JavaConversions como este último, con eso allí sería capaz de hacer algo como .asScala.toList.par. –