Scala集合與Java集合的相互轉換


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
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM