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