Scala集合與Java集合的相互轉換
為什么要相互轉換?
假如有一個Scala代碼和一個Java代碼,兩者之間相互調用的時候,
中間可能需要傳參數,因為兩者在一些方面是不兼容的,因此需要相互轉換
Java集合轉換為Scala集合
Java轉Scala,導入隱式轉換:
import scala.collection.JavaConversions._
package com.shujia.scala
import java.util
object Demo26 {
def main(args: Array[String]): Unit = {
//創建一個Java集合
val arrayList = new util.ArrayList[Integer]()
arrayList.add(1)
arrayList.add(2)
arrayList.add(3)
arrayList.add(4)
arrayList.add(5)
/**
* 增強for循環底層使用的是迭代器
*
* java集合和scala集合不是同一個迭代器
* 所以在scala中不能使用增強for循環遍歷java集合
*
* for (i <- arrayList) {
println(i)
} 這樣寫運行的時候會報錯
*/
//導入隱式轉換(隱式轉換可以動態給對象增加新的方法)
import scala.collection.JavaConversions._
//導入后,Java的ArrayList集合就多了一些Scala的方法,比如:toList、toSet..
//將Java集合轉換為Scala集合
val list: List[Integer] = arrayList.toList
}
}
Scala集合轉換為Java集合
Scala轉Java,導入:
import scala.collection.JavaConverters._
package com.shujia.scala
import java.util
object Demo26 {
def main(args: Array[String]): Unit = {
//創建一個Scala集合
val list2 = List(1, 2, 3, 4, 5, 6, 7)
//導入隱式轉換
import scala.collection.JavaConverters._
//scala集合轉換成java集合
val javaList: util.List[Int] = list2.asJava
}
}