scala中的map集合

map集合的创建

创建一个不可变的map

不可变的map,其值是不可以被改变的

	val map = Map("name"->"张三","age"->25)
	println(map.get("name"))//Some(张三)
    println(map("name"))//张三
    //不能更新一个不可变的映射,但可以做一些有用的操作获取一个新的映射:
    val newScores = map +("sex"->"男","hobby"->"唱歌")
    println(newScores.mkString(","))

创建一个可变的map

可变的map,其值是可以被改变的

import scala.collection.mutable
	val map = mutable.Map("name"->"张三","age"->25)
	//创建一个空的映射开始,必须new它的实现类,并且给出泛型的类型
    val map2 = new mutable.HashMap[String,Any]()

在可变map中添加修改映射关系

import scala.collection.mutable
	 val map = new mutable.HashMap[String,Any]()
    //下面三行都是如果map集合中没有该键就添加数据,如果有该键,就修改数据
    map+=("name"->"张三","age"->23)
    map("address")="江苏省"
    map.update("sex","男")
    //默认以键名的Hash值排序
    println(map.mkString(","))//address -> 江苏省,age -> 23,name -> 张三,sex -> 男

在可变map中删除映射关系

	//根据键删除键和值,可以删除多个,键不存在也不会报错,不删
	map-=("address")
	println(map.mkString(","))//age -> 23,name -> 张三,sex -> 男

判断map中是否存在该键

	//如果存在name键,便返回该键的值,否则返回"map中不存在name键"
    val name = map.getOrElse("name","map中不存在name键")

遍历map集合

	for ((k,v)<- map){
      println(k+"================"+v)
    }
    //遍历所有的键
    for (k <- map.keySet){
      println(k)
    }
    //得到所有的值
    for (v <- map.values){
      println(v)
    }

按输入顺序排序的map

	val link = mutable.LinkedHashMap("name"->"张三","sex"->"男","address"->"北京","school"->"清华")
    println(link)

元组的定义

元组是不同类型数据的一个聚集

	//元组里面最多有22个数据,可以省略不写类型,但如果写了必须写泛型
    val t:Tuple3[Int,String,Char] = (1,"Hello",'男')
    //如何获取元组的中的元素,下标从1开始
    println(t._1)//1
    println(t._2)//"Hello"
    val (order,name,sex)=t
    println(order)//1
    println(name)//"Hello"
    println(sex)'男'
    val keys = Array("order","name","sex")
    val value = Array(1,"张三",23)
    val pairs = keys.zip(value)
    println(pairs.mkString(","))//(order,1),(name,张三),(sex,23),如果两个数组长度不一样,pairs的长度等于数组短的那一个
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值