zoukankan      html  css  js  c++  java
  • Scala中集合类型与java中集合类型转换

    对于java中的集合元素并不能在scala中拿来就用的,需要进行相应的转换。

    1. 转换规则如下

    从下面可以看出,有些可以相互转换的,有些只能单向转换:

    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.mutable.ConcurrentMap <=> java.util.concurrent.ConcurrentMap
    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
    java.util.Properties => scala.collection.mutable.Map[String, String]

    2. 转换操作步骤

    1) 导入包 import scala.collection.JavaConverters._

    2) 添加 .asScala或 .asJava

     3. 测试案例

    以下为java.util.List 和scala 中 Seq的相互转换:

       def main(args: Array[String]): Unit = {
    
            val list:java.util.List[Int] = scala2java
            println("")
            java2scala(list)
        }
    
        //测试Java中List转Scala中Seq
        def scala2java:java.util.List[Int] = {
            import scala.collection.JavaConverters._
            println("scala2java")
            val list = Seq(1,2,3,4).asJava
    
            //循环输出显示
            var x = 0
            for(x <- Range(0,list.size)){
                print(list.get(x) + ",")
            }
            list
        }
    
        //测试Java中List转Scala中Seq
        def java2scala(list:java.util.List[Int]) = {
            import scala.collection.JavaConverters._
            println("java2scala")
            val buffer:scala.collection.mutable.Buffer[Int] = list.asScala
    
            //循环输出显示
            buffer.foreach(x=> print(x + ","))
        }

     显示输出结果:

  • 相关阅读:
    Android 开发转型前端准备知识
    atom写文档技巧
    gerrit升级到16.04之后连接不到服务器
    adb shell am pm
    ArrayList和LinkedList的区别
    Android源码编译
    Android动态加载代码技术
    File 与 FileStream 文件运用
    物体在一定范围自有碰撞
    扫描二维码加载网页图片
  • 原文地址:https://www.cnblogs.com/30go/p/8195164.html
Copyright © 2011-2022 走看看