Scala的映射和元组操作

映射和元组操作

  • 构造Map
    // 构造一个不可变的MAP映射,类似与key -> value这样的组合叫做对偶
    val score = Map("Jack" -> 12, "Bob" -> 20)
    // 也可以这种创建一个Map映射
    val score1 = Map(("Jack", 12), ("Bob", 20))
    // 根据key获取value,类似java中的map.get(key)若是获取一个不存在的key则会报错而不是null
    println(score("Jack"))
    // 获取元素不存在给出无元素提醒
    val flag = if (score.contains("haha")) score.get("haha") else "no such element"
    val flag1 = score.getOrElse("haha", "no such element")
    // 创建可变Map
    val score = scala.collection.mutable.Map("Jack" -> 12, "Bob" -> 20)
  • 更新映射中的值
在可变的映射中,可以更新某个映射的值,在=号左侧使用():
// 更新可变的Map的值
scores("Bob") = 10
// 添加新的key-value
scores("haha")=7
// 也可以使用+=操作和创建映射关系
scores +=("Michael" -> 22)
// 移除某个键对应的值
score -=("Michael")
  • 迭代映射
for((k,v) <- 映射) 这种可以得到每一个的键值对
// 和java一样可以使用keySet和values方法,values方法将会返回一个iterable
score.keySet // 返回类似("Bob","Michael")
// 获取map的value
for (v <- score.values) println(v)
  • 排序映射

    操作映射时,需要选定一个实现---哈希表或者平衡树,默认情况Scala中式hash表,若想顺序访问所有的键,因此需要一个树形映射

val scores = scala.collection.immutable.SortedMap("Bob" -> 10,"michael" -> 12)
  • 与java的互操作
// import scala.collection.javaConversions.mapAsScalaMap 然后指定Scala映射类型触发转换
val scores:scala.collection.mutable.Map[String,Int] = new java.util.TreeMap[String,Int]
// import scala.collection.javaConversions.propertiesAsScalaMap
val props :scala.collection.Map[String,String] = System.getProperties()
// 以上都是将java的map转为Scala的map,可以将Scala的map转为java的mao
import scala.collection.javaConversions.mapAsJavaMap
  • 元组

映射式键值对的集合,对偶式元组(tuple)的最简单的形态---而元组式不同类型值得聚集

(1,95.27,"Bob") 是一个元组类型为(Int,Double,java.lang.String)可以方法_1,_2,_3访问元组例如以下元组:
    val l = (1,2.34,"哈哈")
    println(l._2)
  • 拉链操作
// 使用元组可以将他们映射起来使用zip方法
    val symbols = Array("<","-",">")
    val counts = Array(2,10,2)
    val pairs = symbols.zip(counts)
    println(pairs.toBuffer)
    // 打印<<---------->>
    for ((s,n) <- pairs) Console.print(s * n)

原文地址:https://www.cnblogs.com/codegeekgao/p/9615925.html

时间: 2024-08-29 13:30:53

Scala的映射和元组操作的相关文章

Scala:映射和元组

映射是键值对偶的集合.Scala有一个通用的叫法——元组:n个对象的聚集,并不一定要相同的类型. 构造映射 键A -> 值B scala> val scores = Map("wcc100"->100)//不可变映射 scores: scala.collection.immutable.Map[String,Int] = Map(wcc100 -> 100) scala> val scores1 = scala.collection.mutable.Map

scala学习3 数组相关操作映射和元组

一.定长数组 如果需要一个长度不变的数组,可以使用Scala中的Array. val nums = new Array[int](10) val s = Array("Hello","world") 二.变长数组:数组缓冲 1. val b = ArrayBuffer[int]() 2.追加元素 b +=(1,2,3,4,5) 3.追加任何集合 b ++= Array(8,13,21) 4.移除最后5个元素 b.trimEnd(5) 5.插入元素 b.insert(

从零学scala(二)数组相关操作、映射和元组

一:数组相关操作 定长数组 val array = Array[String]("a","b","c") //直接初始化数组的内容        println(array.mkString("|")) val array = new Array[String](2) //new一个长度为2的数据在通过更新的方法进行赋值        array.update(0, "0")        array.up

Scala学习(四)---映射和元组

映射和元组 摘要: 一个经典的程序员名言是:"如果只能有一种数据结构,那就用哈希表吧".哈希表或者更笼统地说映射,是最灵活多变的数据结构之一.映射是键/值对偶的集合.Scala有一个通用的叫法:元组,即n个对象的聚集,并不一定要相同类型的.对偶不过是一个 n=2的元组,元组对于那种需要将两个或更多值聚集在一起时特别有用.本篇的要点包括: 01. Scala有十分易用的语法来创建.查询和遍历映射. 02. 你需要从可变的和不可变的映射中做出选择. 03. 默认情况下,你得到的是一个哈希映射,不过你

快学Scala习题解答—第四章 映射和元组

4 映射和元组 4.1 设置一个映射,其中包含你想要的一些装备,以及它们的价格.然后构建另一个映射,采用同一组键,但是价格上打9折 映射的简单操作 Shell代码   scala> val map = Map("book"->10,"gun"->18,"ipad"->1000) map: scala.collection.immutable.Map[java.lang.String,Int] = Map(book ->

Scala从入门到精通之四-映射和元组

在Scala中映射之键值对的集合,元组是n个对象的聚集,但是对象的类型不一定相同 本节内容要点 Scala中映射的创建,遍历和查询 如何从可变和不可变映射中做出选择 Scala映射和Java映射见的互操作 Scala中元组的使用 一.构造映射 我们可以这样来构造一个映射: val scores = Map("ysl"->100,"wdd"->90) 上述代码构造一个不可变的Map[String,Int],其值不可以被改变.如果需要创建一个可变的映射,可以

Scala映射和元组

映射 import scala.collection.mutable object HelloWorld { def main(args: Array[String]) { val scores = Map("Alice" -> 10, "Bob" -> 33) //构造一个不可变的Map[String,Int] val scores2 = scala.collection.mutable.Map("Alice" -> 10,

快学Scala-第四章 映射和元组

知识点: 1.构造映射,映射是对偶的集合 val scores1 = Map("Alice" -> 10, "Bob" -> 7, "Cindy" -> 9) //不可变映射 // val scores1 = Map(("Alice",),("Bob",),("Cindy",)) val scores2 = scala.collection.mutable.Map(&q

Python元组操作详解

本文和大家分享的主要是python 元组操作相关内容,一起来看看吧,希望对大家 学习python有所帮助. 谈起元组,有了解的可能会觉得这个类型跟列表是非常相似的,操作方面也基本雷同,不过他们本质的区别是,元组是不可变数据类型,还记得我们之前提到过的字符串也是不可变数据类型吗?让我们再回顾下什么是不可变性,不可变性就是一旦一个对象被定义了,它的值就不能再本更新,除非是重新创建一个新的对象,那元组跟字符串的区别是,元组是一个容器对象,它可以包含一个或多个元素,基本特性我们  就介绍了这里,接下来我