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 + ","))
        }

     显示输出结果:

  • 相关阅读:
    iOS 中Block以及Blocks的使用,闭包方法调用
    iOS 网络监听、判断
    微信摇一摇实现原理,视图展示
    iOS cocos2d安装以及问题解决
    iOS cocos2d游戏引擎的了解之一
    Leetcode-Valid Sudoku
    Leetcode-Count and Say
    Leetcode-Length of Last Word
    Leetcode-Merge Two Sorted Lists
    Leetcode-Add Binary
  • 原文地址:https://www.cnblogs.com/30go/p/8195164.html
Copyright © 2011-2022 走看看