scala中的map集合

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的长度等于数组短的那一个
    原文作者:码仆的逆袭
    原文地址: https://blog.csdn.net/qq_34191426/article/details/90724748
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞