scala基础-map/tuple初印象
来源:互联网 发布:林心如真恶心知乎 编辑:程序博客网 时间:2024/06/09 17:09
1、不可变Map定义
默认情况下map是构造不可变的集合,里面内容不可修改,一旦修改就变成新的map,原有map内容保持不变;
如果想直接new出Map实例,则需要使用HashMap等具体的Map子类;
// 不可变Map val bigDatas = Map("Spark"->6, "Hadoop"->11)// 调用工厂方法模式apply来构造Map实例,而需要注意的是Map是接口,在apply中使用了具体的实现
同时其实不可变的,不可对其进行增删改。
2、可变Map定义
// 可变Map val programingLanguage = scala.collection.mutable.Map("scala" -> 13, "java" -> 23) programingLanguage("scala") = 30 for((name, age) <- programingLanguage) println(name + " = " + age)
输出:
scala = 30java = 23
3、HashMap的使用
3.1HashMap定义
val personsInformation = new scala.collection.mutable.HashMap[String, Int]
3.2 增删操作
// 增加元素personsInformation("Jerry") = 32;personsInformation("Tom") = 12;personsInformation += ("Marry" -> 45, "Chare" -> 11)// 删除元素personsInformation -= ("Marry")for((name, age) <- personsInformation) println(name + " : " + age)
输出:
Jerry : 32Chare : 11Tom : 12
3.3 getOrElse的使用
查询一个Map中的值一定要采用getOrElse的语法(因为如果查询值不在Map中,一方面在key不存在的情况下不报异常,可能会报以下错误:
“java.util.NoSuchElementException: key not found: Bob”;
另外一个神奇的作用就是提供默认值,而关于默认值的提供在实际开发中至关重要,在spark中很多默认值都是通过getOrElse的方式来实现。
// java.util.NoSuchElementException: key not found: Bob// println(personsInformation("Bob"))println(personsInformation.getOrElse("Bob", 23))// 查询Jerry对应的值,没有则打印23,有则打印对应value
输出:
23
3.4 获取key或者value
// 只打印keyfor(key <- personsInformation.keySet) println( key )// 只打印valuefor(value <- personsInformation.values) println( value )
输出:
JerryChareTom321112
3.5 使用yield将key\value倒置
val result = for((key, value) <- personsInformation) yield(value, key) for((key, value) <- result) println(key + " : " + value)
输出:
32 : Jerry11 : Chare12 : Tom
4、排序的Map(SortedMap)的定义以及使用
使用SortedMap可以得到排序的Map集合。
// 定义一个排序的Mapval persons = scala.collection.immutable.SortedMap("c" -> 3, "a" -> 2, "e" -> 1, "b" -> 99)for((key, value) <- persons) println(key + " : " + value)
输出:
a : 2b : 99c : 3e : 1
5、LinkedHashMap的定义
LinkedHashMap可以记住插入数据的顺序,这在实际开发中非常有用;按照输入的顺序进行输出。
val person2 = scala.collection.mutable.LinkedHashMap("c" -> 3, "a" -> 2, "e" -> 1, "b" -> 9)for((key, value) <- person2) println(key + " : " + value)
输出:
c : 3a : 2e : 1b : 9
6、tuple的定义
1、Tuple中可以有很多不同类型的数据;
2、在企业级实际开发大数据的时候一定会反复的使用Tuple来表达数据结构,以及使用Tuple来处理业务逻辑;
3、Tuple的另外一个非常重要的作用是作为函数的返回值,在Tuple中返回若干个值。
// 定义一个tuple val personIntroduce = ("Jerry", "male", 23, "FUZHOU", "It's a good boy") println("My name is " + personIntroduce._1 + ". I'm " + personIntroduce._3 + " years old !")
输出:
My name is Jerry. I'm 23 years old !
阅读全文
0 0
- scala基础-map/tuple初印象
- Javascript初印象-基础_1
- scala基础2-tuple array map
- scala基础8-map/tuple/zip进阶
- Scala-LIST/Tuple/Map
- Scala : Map、Tuple、Zip
- Scala tuple与map
- Swift 基础学习(构造方法初印象)
- Scala基础语法、函数及Array、Map、Tuple
- Scala基础—Map和Tuple操作示例
- scala-03Tuple、Array、Map
- Scala入门之Map、Tuple
- Scala中的Map和Tuple
- scala Map 和 Tuple操作
- Scala学习八:Map, Tuple
- scala中的map和tuple
- Python3基础(十) 类的初印象
- PB接触初印象
- Java8:Optional类的解析
- 10.23-10.24欢乐爆零赛总结
- ColorLayout原理及性能
- 访问main函数的返回值方式
- Java-引用
- scala基础-map/tuple初印象
- 再聊线程池
- 38. Count and Say
- 静态链接
- eclipse、myeclipse中常用的快捷键---持续更新中
- Android 设计模式之外观模式
- 使用wget下载jdk方法
- 数据结构 P64-65 算法实现 循环队列的创建和基本操作
- 今日头条——校招在线编程题《字典序》