本篇内容主要讲解“Scala的JavaMap与ScalaMap隐式转换怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Scala的JavaMap与ScalaMap隐式转换怎么实现”吧!
坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都成都广告制作小微创业公司专业提供成都企业网站定制营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。
Tuple拉链操作
实际就是将两个Array合并成一个Tuple,通过Array的zip()方法实现,这里需要注意,两个数组的长度要一致,不然会丢数据:
代码实例:
package com.hadoop.ljs.spark.study
/**
* @author: Created By lujisen
* @company ChinaUnicom Software JiNan
* @date: 2020-02-08 19:59
* @version: v1.0
* @description: com.hadoop.ljs.spark.study
*/
/*Array数组的zip()方法可将两个数组合并成一个tuple*/
object TupleZip {
def main(args: Array[String]): Unit = {
val nameArray=Array("ljs1","ljs2","ljs3")
val nameArray2=Array("ljs1","ljs2","ljs3","ljs4")
val ageArray=Array(17,18,19)
val nameAgeArray=nameArray.zip(ageArray)
println("两个数组元素相同")
nameAgeArray.foreach{
x=>println("姓名:"+x._1+" 年龄"+x._2)
}
println("两个数组元素不同")
val nameAgeArray2=nameArray2.zip(ageArray)
for((name,age)<-nameAgeArray2){
println("姓名:"+name+" 年龄"+age)
}
/*如果Array元素是一个Tuple,可直接调用Map(),转换成Map*/
val nameAgeMap=nameAgeArray.toMap
println("转化成Map")
println(nameAgeMap)
}
}
从代码可看出,当两个Array长度不一致时,只保留了对应的数据,后面多的数据直接丢弃了。
由于都运行在JVM上,Java与Scala之间基本能做到无缝的集成,区别主要在于各自的API各有不同。由于Scala为集合提供了更多便捷的函数,因此,Java与Scala在集合之间的互操作,或许是在这种多语言平台下使用最为频繁的。
Scala中操作Java集合
两种情况需要在Scala中操作Java集合。一种是Scala调用了其他的Java库,针对Java集合需要转换为Scala集合,如此才能享受Scala集合提供的福利;另一种是编写了Scala程序,但需要提供给Java库,为了更好地无缝集成,要让Java库体会不到Scala的存在。
JavaMap和ScalaMap隐式转换,
代码实例:
package com.hadoop.ljs.spark.study
import java.util
/**
* @author: Created By lujisen
* @company ChinaUnicom Software JiNan
* @date: 2020-02-08 20:23
* @version: v1.0
* @description: com.hadoop.ljs.spark.study JavaMap和Scala隐式转换
*/
import scala.collection.JavaConversions.mapAsScalaMap
object JavaMapImplicitScalaMap {
def main(args: Array[String]): Unit = {
val javaMap=new util.HashMap[String,Int]()
javaMap.put("ljs1",17)
javaMap.put("ljs2",18)
javaMap.put("ljs3",19)
val scalaMap:scala.collection.mutable.Map[String,Int]=javaMap
println(scalaMap)
import scala.collection.JavaConversions.mapAsJavaMap
val scalaAttrMap = Map("ljs4" -> 20, "ljs5"->22)
val javaMap2 = new util.HashMap[String,Int](scalaAttrMap)
println(javaMap2)
}
}
到此,相信大家对“Scala的JavaMap与ScalaMap隐式转换怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!