java list 转 scala_Java与Scala集合互转
使用 scala.collection.JavaConverters 與Java集合交互。它有一系列的隱式轉換,添加了asJava和asScala的轉換方法。
import scala.collection.JavaConverters._
val list: java.util.List[Int] = List(1,2,3,4).asJava
val buffer: scala.collection.mutable.Buffer[Int] = list.asScala
以下集合可以進行任意,轉換。但在某些情況下引入的隱式轉換不正確或未引入,仍然無法進行正確轉換,如API的例子
scala.collection.Iterable <=> java.lang.Iterable
scala.collection.Iterable <=> java.util.Collection
scala.collection.Iterator <=> java.util.{ Iterator, Enumeration }
scala.collection.mutable.Buffer <=> java.util.List
scala.collection.mutable.Set <=> java.util.Set
scala.collection.mutable.Map <=> java.util.{ Map, Dictionary }
scala.collection.concurrent.Map <=> java.util.concurrent.ConcurrentMap
總結下來就是:collection:可以指定元素排序規則:sort方法或繼承comparable
scala.collection.Iterable<=>java.lang.{iterable,collection}
scala.collection.Iterator<=>java.util.{Iterator,Enumeration}
scala的Buffer對應就是java.util.List,不可直接使用,使用ListBuffer
scala.collection.mutable.Buffer<=>java.util.List
scala.collection.mutable.Set<=>java.util.Set
scala.collection.mutable.Map<=>java.util.{Map,Dictionary}
并發安全集合
scala.collection.concurrent.Map<=>java.util.concurrent.ConcurrentMap
以下為scala.collection.mutable.ListBuffer<=>java.util.List
除要求引入相應的轉換類JavaConversions._,還有引入ListBuffer=>java.util.List 具體轉換方法
List 轉 Seq:
List tmpList = new ArrayList<>();
tmpList.add("abc");
Seq tmpSeq = JavaConverters.asScalaIteratorConverter(tmpList.iterator()).asScala().toSeq();
Seq 轉 List:
List tmpList = scala.collection.JavaConversions.seqAsJavaList(tmpSeq);
總結
以上是生活随笔為你收集整理的java list 转 scala_Java与Scala集合互转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 赢在中国 (2008-3-19)
- 下一篇: java system.out.read