Packages

o

scala.jdk

CollectionConverters

object CollectionConverters extends AsJavaExtensions with AsScalaExtensions

This object provides extension methods that convert between Scala and Java collections.

When writing Java code, use the explicit conversion methods defined in javaapi.CollectionConverters instead.

Note: to create Java Streams that operate on Scala collections (sequentially or in parallel), use StreamConverters.

import scala.jdk.CollectionConverters._
val s: java.util.Set[String] = Set("one", "two").asJava

The conversions return adapters for the corresponding API, i.e., the collections are wrapped, not converted. Changes to the original collection are reflected in the view, and vice versa:

scala> import scala.jdk.CollectionConverters._

scala> val s = collection.mutable.Set("one")
s: scala.collection.mutable.Set[String] = HashSet(one)

scala> val js = s.asJava
js: java.util.Set[String] = [one]

scala> js.add("two")

scala> s
res2: scala.collection.mutable.Set[String] = HashSet(two, one)

The following conversions are supported via asScala and asJava:

scala.collection.Iterable       <=> java.lang.Iterable
scala.collection.Iterator       <=> java.util.Iterator
scala.collection.mutable.Buffer <=> java.util.List
scala.collection.mutable.Set    <=> java.util.Set
scala.collection.mutable.Map    <=> java.util.Map
scala.collection.concurrent.Map <=> java.util.concurrent.ConcurrentMap

The following conversions are supported via asScala and through specially-named extension methods to convert to Java collections, as shown:

scala.collection.Iterable    <=> java.util.Collection   (via asJavaCollection)
scala.collection.Iterator    <=> java.util.Enumeration  (via asJavaEnumeration)
scala.collection.mutable.Map <=> java.util.Dictionary   (via asJavaDictionary)

In addition, the following one-way conversions are provided via asJava:

scala.collection.Seq         => java.util.List
scala.collection.mutable.Seq => java.util.List
scala.collection.Set         => java.util.Set
scala.collection.Map         => java.util.Map

The following one way conversion is provided via asScala:

java.util.Properties => scala.collection.mutable.Map

In all cases, converting from a source type to a target type and back again will return the original source object. For example:

import scala.jdk.CollectionConverters._

val source = new scala.collection.mutable.ListBuffer[Int]
val target: java.util.List[Int] = source.asJava
val other: scala.collection.mutable.Buffer[Int] = target.asScala
assert(source eq other)
Source
CollectionConverters.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CollectionConverters
  2. AsScalaExtensions
  3. AsJavaExtensions
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. implicit class BufferHasAsJava[A] extends AnyRef
    Definition Classes
    AsJavaExtensions
  2. implicit class ConcurrentMapHasAsJava[K, V] extends AnyRef
    Definition Classes
    AsJavaExtensions
  3. implicit class IterableHasAsJava[A] extends AnyRef
    Definition Classes
    AsJavaExtensions
  4. implicit class IteratorHasAsJava[A] extends AnyRef
    Definition Classes
    AsJavaExtensions
  5. implicit class MapHasAsJava[K, V] extends AnyRef
    Definition Classes
    AsJavaExtensions
  6. implicit class MutableMapHasAsJava[K, V] extends AnyRef
    Definition Classes
    AsJavaExtensions
  7. implicit class MutableSeqHasAsJava[A] extends AnyRef
    Definition Classes
    AsJavaExtensions
  8. implicit class MutableSetHasAsJava[A] extends AnyRef
    Definition Classes
    AsJavaExtensions
  9. implicit class SeqHasAsJava[A] extends AnyRef
    Definition Classes
    AsJavaExtensions
  10. implicit class SetHasAsJava[A] extends AnyRef
    Definition Classes
    AsJavaExtensions
  11. implicit class CollectionHasAsScala[A] extends AnyRef
    Definition Classes
    AsScalaExtensions
  12. implicit class ConcurrentMapHasAsScala[K, V] extends AnyRef
    Definition Classes
    AsScalaExtensions
  13. implicit class DictionaryHasAsScala[K, V] extends AnyRef
    Definition Classes
    AsScalaExtensions
  14. implicit class EnumerationHasAsScala[A] extends AnyRef
    Definition Classes
    AsScalaExtensions
  15. implicit class IterableHasAsScala[A] extends AnyRef
    Definition Classes
    AsScalaExtensions
  16. implicit class IteratorHasAsScala[A] extends AnyRef
    Definition Classes
    AsScalaExtensions
  17. implicit class ListHasAsScala[A] extends AnyRef
    Definition Classes
    AsScalaExtensions
  18. implicit class MapHasAsScala[K, V] extends AnyRef
    Definition Classes
    AsScalaExtensions
  19. implicit class PropertiesHasAsScala extends AnyRef
    Definition Classes
    AsScalaExtensions
  20. implicit class SetHasAsScala[A] extends AnyRef
    Definition Classes
    AsScalaExtensions