idea里scala里的map方法需要添加什么头文件

idea里scala里的map方法需要添加什么头文件,第1张

不用吧

Map结构是一种非常常见的结构,在各种程序语言都有对应的api,由于Spark的底层语言是Scala,所以有必要来了解下Scala中的Map使用方法。

(1)不可变Map

特点:

api不太丰富

如果是var修饰,引用可变,支持读写

如果是val修饰,引用不可变,只能写入一次值,其后只读

var a:Map[String,Int]=Map("k1"->1,"k2"->2)//初始化构造函数

a += ("k3"->3)//添加元素

a += ("k4"->4)//添加元素

a += ("k1"->100)//已经存在添加元素会覆盖

a -= ("k2","k1")//删除元素//a("k1") = "foo"//不支持

println(a.contains("k6"))//是否包含某元素

println(a.size)//打印大小

println(a.get("k1").getOrElse("default")) //根据key读取元素,不存在就替换成默认值

a.foreach{case (e,i) =>println(e,i)} //遍历打印1

for( (k,v)<-a ) println(k,v) //遍历打印2

println(a.isEmpty)//判断是否为空

a.keys.foreach(println)//只打印key

a.values.foreach(println)//只打印value

a=Map()//数据清空使用再次new

println(a.size)a.toSeq.sortBy(_._1)//升序排序 key

a.toSeq.sortBy(_._2)//升序排序 value

a.toSeq.sortWith(_._1>_._1) //降序排序 key

a.toSeq.sortWith(_._2>_._2) //降序排序 value

//下面自定义按英文字母或数字排序

implicit val KeyOrdering=new Ordering[String] {

override def compare(x: String, y: String): Int = {

x.compareTo(y)

}

}

println(a.toSeq.sorted)

(2)可变Map例子

特点:

api丰富与Java中Map基本类似

如果是var修饰,引用可变,支持读写

如果是val修饰,引用不可变,支持读写

def map3(): Unit ={ //不可变Map+var关键词修饰例子

var a:scala.collection.mutable.Map[String,Int]=scala.collection.mutable.Map("k1"->1,"k2"->2)//初始化构造函数

a += ("k3"->3)//添加元素

a += ("k4"->4)//添加元素

a += ("k1"->100)//已经存在添加元素会覆盖

a += ("k1"->100,"k9"->9)//添加多个元素

a -= ("k2","k1")//删除元素

a ++= List("CA" ->23, "CO" ->25)//追加集合

a --= List("AL", "AZ")//删除集合

a.retain((k,v)=>k=="k1")//只保留等于k1元素,其他的删除

a.put("put1",200)//put

a.remove("k2")//remove

a.clear()//清空

a("k3")=100//支持

println(a.contains("k6"))//是否包含某元素

println(a.size)//打印大小

println(a.get("k1").getOrElse("default")) //根据key读取元素,不存在就替换成默认值

a.foreach{case (e,i) =>println(e,i)} //遍历打印1

for( (k,v)<-a ) println(k,v) //遍历打印2

println(a.isEmpty)//判断是否为空

a.keys.foreach(println)//只打印key

a.values.foreach(println)//只打印value

a=scala.collection.mutable.Map()//引用能变

println(a.size) a.toSeq.sortBy(_._1)//排序 key

a.toSeq.sortBy(_._2)//排序 value

a.toSeq.sortWith(_._1>_._1) //降序排序 key

a.toSeq.sortWith(_._2>_._2) //降序排序 value

//下面自定义按英文字母或数字排序

implicit val KeyOrdering=new Ordering[String] {

override def compare(x: String, y: String): Int = {

x.compareTo(y)

}

}

println(a.toSeq.sorted)

}

1、首先点击Idea菜单中点击Editconfiguration。

2、其次在面板中点击Deployment然后点击下方选择ExternalSource从硬盘中选择一个路径作为图片的储存路径,Dprojectdevimageupload选择upload目录,在点击OK完成设置。

3、最后置文件的访问的虚拟目录为upload,点击ApplyOK完成设置。

可以用:"ctrl+1"添加。

java中的import java.util.Scanner 是一个类,可以用这个类来从控制台写入数据(可以是int,String等类型)

例如:   import java.util.Scannerpublic class demo {  public static void main(String[] wqs) {  String mystr=""

System.out.print("请你输入字符,按回车结束") Scanner in = new Scanner(System.in)

mystr=in.nextLine() System.out.print("你输入的字符串是"+mystr)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11921794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存