用法:
object CollectionConverters extends AsJavaExtensions with AsScalaExtensions
該對象提供了在 Scala 和 Java 集合之間進行轉換的擴展方法。
編寫 Java 代碼時,請改用 javaapi.CollectionConverters 中定義的顯式轉換方法。
注意:要創建對 Scala 集合(順序或並行)進行操作的 Java Streams,請使用 StreamConverters 。
import scala.jdk.CollectionConverters._
val s: java.util.Set[String] = Set("one", "two").asJava
轉換返回相應 API 的適配器,即,集合被包裝,而不是轉換。對原始集合的更改會反映在視圖中,反之亦然:
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)
通過 asScala
和 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
通過asScala
和specially-named 擴展方法支持以下轉換以轉換為Java 集合,如圖所示:
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)
此外,通過 asJava
提供以下 one-way 轉換:
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
通過 asScala
提供以下單向轉換:
java.util.Properties => scala.collection.mutable.Map
在所有情況下,從源類型轉換為目標類型並再次轉換將返回原始源對象。例如:
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)
相關用法
- Scala jdk.Accumulator用法及代碼示例
- Scala jdk.OptionConverters用法及代碼示例
- Scala jdk.StreamConverters用法及代碼示例
- Scala jdk.FunctionConverters用法及代碼示例
- Scala javaapi.CollectionConverters用法及代碼示例
- Scala Tabulate.sliding用法及代碼示例
- Scala ArrayBuffer.inits用法及代碼示例
- Scala long.BitwiseOr用法及代碼示例
- Scala StringBuilder.partitionMap用法及代碼示例
- Scala List distinct()用法及代碼示例
- Scala DefaultMap.sizeIs用法及代碼示例
- Scala StrictOptimizedIterableOps.sliding用法及代碼示例
- Scala Searching.SearchResult用法及代碼示例
- Scala ::.collectFirst用法及代碼示例
- Scala TreeSet diff()用法及代碼示例
- Scala Char getClass()用法及代碼示例
- Scala int.Min用法及代碼示例
- Scala IntMap.groupMap用法及代碼示例
- Scala Map3.mkString用法及代碼示例
- Scala IterableOnceOps.flatMap用法及代碼示例
- Scala IndexedSeqOps.lengthIs用法及代碼示例
- Scala Map3.addString用法及代碼示例
- Scala WrappedString.scanRight用法及代碼示例
- Scala String compareToIgnoreCase()用法及代碼示例
- Scala List drop()用法及代碼示例
注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 jdk.CollectionConverters。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。