映射和元组操作

  • 构造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)

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

  1. 【scala】 scala 映射和元组操作(四)

    1.映射  Map 定义 ,取值,遍历,排序 2. 元组 定义,取值,拉链操作 import scala.collection.mutable /** * 映射和元组 * * @author xwol ...

  2. Scala:映射和元组

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

  3. 《快学Scala》——数组、映射和元组

    数组 定长数组:在Scala中可以用Array,初始化一个定长数组.例如: val nums = new Array[Int](10) //10个整数的数组,所有元素初始化为0 val a = new ...

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

    在Scala中映射之键值对的集合,元组是n个对象的聚集,但是对象的类型不一定相同 本节内容要点 Scala中映射的创建,遍历和查询 如何从可变和不可变映射中做出选择 Scala映射和Java映射见的互 ...

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

    映射和元组 摘要: 一个经典的程序员名言是:"如果只能有一种数据结构,那就用哈希表吧".哈希表或者更笼统地说映射,是最灵活多变的数据结构之一.映射是键/值对偶的集合.Scala有一个通用的叫法:元组, ...

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

    4 映射和元组  4.1 设置一个映射,当中包括你想要的一些装备,以及它们的价格.然后构建还有一个映射.採用同一组键,可是价格上打9折 映射的简单操作  ,"gun"->18 ...

  7. Scala从入门到放弃(三)Scala的数组、映射、元组和集合

    1.数组 1.1定长数组和变长数组 object ArrayDemo { def main(args: Array[String]): Unit = { //初始化一个长度为8的定长数组,其数组元素均 ...

  8. 学好Spark/Kafka必须要掌握的Scala技术点(一)变量、表达式、循环、Option、方法和函数,数组、映射、元组、集合

    前言 Scala是以JVM为运行环境的面向对象的函数式编程语言,它可以直接访问Java类库并且与Java框架进行交互操作.正如之前所介绍,Spark是用Scala语言编写的,Kafka server端 ...

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

    知识点: 1.构造映射,映射是对偶的集合 val scores1 = Map("Alice" -> 10, "Bob" -> 7, "Ci ...

随机推荐

  1. easyui 笔记

    easyui-datagrid:loadFilter:处理服务器端传递过来的参数. 刷新datagrid:$("#xxx").datagrid('reload'): form 表单 ...

  2. python学习手册中的一些易忘的点(前三部分)

    1.ubuntu下让python脚本可直接运行: test.py文件(后缀可省)#!/usr/bin/pythonprint('wwwww') sudo chmod +x ./test.py (sud ...

  3. 使用ember-cli脚手架快速构建项目

    步骤: 安装Ember. 创建一个新应用程序. 定义路由. 编写一个UI组件. 构建您的应用程序以部署到生产环境. 安装Ember 您可以使用npm(Node.js包管理器,你需要安装node.js) ...

  4. [翻译] USING GIT IN XCODE [4] 在XCODE中使用GIT[4]

    USING GIT IN XCODE LOOKING AT HISTORY Xcode provides a Versions editor, which has three different pe ...

  5. Linux 系统的DNS配置文件

    系统的DNS配置文件 方式一: 界面操作 setup -->界面配置网络,网关等 方式二: 修改配置文件 # 修改配置 ==>vi /etc/resolv.conf -->man r ...

  6. marquee 标签的鼠标放上去滚动效果 鼠标离开继续滚动

    效果很实用,可以轻松的实现鼠标放上去停止滚动.鼠标离开继续滚动的效果.下面是具体的用法(特别注意onMouseOver和onMouseOut是需要同时写进去才会出现比较好的效果):onMouseOut ...

  7. Hadoop HBase概念学习系列之HBase里的高表设计概念(表设计)(二十八)

    在下面这篇博文里,我给各位博客们,分享了创建HBase表,但这远不止打好基础. HBase编程 API入门系列之create(管理端而言)(8) 在关系型数据库里,表的高表和宽表是不存在的.在如HBa ...

  8. November 7th 2016 Week 46th Monday

    A friend is one who knows you and loves you just the same. 朋友是懂你并爱你的人. Friendship means inclusion, l ...

  9. [CSS]关于z-index与position的一次奇异经历

    前言: 前不久,同事S遇到了一个关于position和z-index的问题. 他折腾了一天没搞定,群发了邮件寻求帮助, 我一开始以为很简单,就主动说帮忙,简单尝试之后,才发现貌似没那么简单. 问题主要 ...

  10. [李居丽][다이아몬드][Diamond]

    歌词来源:http://music.163.com/#/song?id=484056974 作曲 : Damon Sharpe/JOHN HO/JEFF SHUM [作曲 : Damon Sharpe ...