- 浏览: 595940 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Map(映射)是一种可迭代的键值对(key/value)结构。
所有的值都可以通过键来获取。
Map 中的键都是唯一的。
Map 也叫哈希表(Hash tables)。
Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。
默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类
在 Scala 中 你可以同时使用可变与不可变 Map,不可变的直接使用 Map,可变的使用 mutable.Map。以下实例演示了不可变 Map 的应用:
定义 Map 时,需要为键值对定义类型。如果需要添加 key-value 对,可以使用 + 号,如下所示:
Map 基本操作
Scala Map 有三个基本操作:
keys 返回 Map 所有的键(key)
values 返回 Map 所有的值(value)
isEmpty 在 Map 为空时返回true
实例
以下实例演示了以上三个方法的基本应用:
执行以上代码,输出结果为:
Map 合并
你可以使用 ++ 运算符或 Map.++() 方法来连接两个 Map,Map 合并时会移除重复的 key。以下演示了两个 Map 合并的实例:
执行以上代码,输出结果为:
输出 Map 的 keys 和 values
以下通过 foreach 循环输出 Map 中的 keys 和 values:
执行以上代码,输出结果为:
查看 Map 中是否存在指定的 Key
你可以使用 Map.contains 方法来查看 Map 中是否存在指定的 Key。实例如下:
执行以上代码,输出结果为:
所有的值都可以通过键来获取。
Map 中的键都是唯一的。
Map 也叫哈希表(Hash tables)。
Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。
默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类
在 Scala 中 你可以同时使用可变与不可变 Map,不可变的直接使用 Map,可变的使用 mutable.Map。以下实例演示了不可变 Map 的应用:
// 空哈希表,键为字符串,值为整型 var A:Map[Char,Int] = Map() // Map 键值对演示 val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")
定义 Map 时,需要为键值对定义类型。如果需要添加 key-value 对,可以使用 + 号,如下所示:
A += ('I' -> 1) A += ('J' -> 5) A += ('K' -> 10) A += ('L' -> 100)
Map 基本操作
Scala Map 有三个基本操作:
keys 返回 Map 所有的键(key)
values 返回 Map 所有的值(value)
isEmpty 在 Map 为空时返回true
实例
以下实例演示了以上三个方法的基本应用:
object Test { def main(args: Array[String]) { val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F") val nums: Map[Int, Int] = Map() println( "colors 中的键为 : " + colors.keys ) println( "colors 中的值为 : " + colors.values ) println( "检测 colors 是否为空 : " + colors.isEmpty ) println( "检测 nums 是否为空 : " + nums.isEmpty ) } }
执行以上代码,输出结果为:
$ scalac Test.scala $ scala Test colors 中的键为 : Set(red, azure, peru) colors 中的值为 : MapLike(#FF0000, #F0FFFF, #CD853F) 检测 colors 是否为空 : false 检测 nums 是否为空 : true
Map 合并
你可以使用 ++ 运算符或 Map.++() 方法来连接两个 Map,Map 合并时会移除重复的 key。以下演示了两个 Map 合并的实例:
object Test { def main(args: Array[String]) { val colors1 = Map("red" -> "#FF0000", "azure" -> "#F0FFFF", "peru" -> "#CD853F") val colors2 = Map("blue" -> "#0033FF", "yellow" -> "#FFFF00", "red" -> "#FF0000") // ++ 作为运算符 var colors = colors1 ++ colors2 println( "colors1 ++ colors2 : " + colors ) // ++ 作为方法 colors = colors1.++(colors2) println( "colors1.++(colors2)) : " + colors ) } }
执行以上代码,输出结果为:
$ scalac Test.scala $ scala Test colors1 ++ colors2 : Map(blue -> #0033FF, azure -> #F0FFFF, peru -> #CD853F, yellow -> #FFFF00, red -> #FF0000) colors1.++(colors2)) : Map(blue -> #0033FF, azure -> #F0FFFF, peru -> #CD853F, yellow -> #FFFF00, red -> #FF0000)
输出 Map 的 keys 和 values
以下通过 foreach 循环输出 Map 中的 keys 和 values:
object Test { def main(args: Array[String]) { val sites = Map("runoob" -> "http://www.runoob.com", "baidu" -> "http://www.baidu.com", "taobao" -> "http://www.taobao.com") sites.keys.foreach{ i => print( "Key = " + i ) println(" Value = " + sites(i) )} } }
执行以上代码,输出结果为:
$ scalac Test.scala $ scala Test Key = runoob Value = http://www.runoob.com Key = baidu Value = http://www.baidu.com Key = taobao Value = http://www.taobao.com
查看 Map 中是否存在指定的 Key
你可以使用 Map.contains 方法来查看 Map 中是否存在指定的 Key。实例如下:
object Test { def main(args: Array[String]) { val sites = Map("runoob" -> "http://www.runoob.com", "baidu" -> "http://www.baidu.com", "taobao" -> "http://www.taobao.com") if( sites.contains( "runoob" )){ println("runoob 键存在,对应的值为 :" + sites("runoob")) }else{ println("runoob 键不存在") } if( sites.contains( "baidu" )){ println("baidu 键存在,对应的值为 :" + sites("baidu")) }else{ println("baidu 键不存在") } if( sites.contains( "google" )){ println("google 键存在,对应的值为 :" + sites("google")) }else{ println("google 键不存在") } } }
执行以上代码,输出结果为:
$ scalac Test.scala $ scala Test runoob 键存在,对应的值为 :http://www.runoob.com baidu 键存在,对应的值为 :http://www.baidu.com google 键不存在
发表评论
文章已被作者锁定,不允许评论。
-
Scala 在Intellij中搭建Scala环境(jdk8,scala2.11.4)
2017-06-02 16:33 14351.打开Intellij然后点击File->Plugin ... -
Scala Partial Functions(偏函数)学习
2017-04-24 10:54 340如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子 ... -
Scala 样本类(case class)和模式匹配(match)学习
2017-04-20 18:20 827样本类(case clas)和模式 ... -
Scala 作业题练习纪录
2017-04-20 14:39 10011.用reduceLeft获取集合中最大元素 println ... -
Scala 闭包理解
2017-04-20 13:57 659闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。 ... -
Scala 各种符号的含义(->,:::,::,<-,=>)
2017-04-20 09:50 644:::运算符 :::(三个冒号)表示List的连接操作,比如: ... -
Scala filter方法过滤集合元素(获取集合中的元素)
2017-04-19 14:44 2063Problem 你想要筛选出集合中的一些元素形成一个新的集合 ... -
Scala apply方法学习(类和对象都存在apply方法)
2017-04-19 10:18 730Scala比Java更面向对象的一个方面是Scala没有静态成 ... -
Scala 元组Tuple学习
2017-04-17 16:12 633元组是Scala提供的一种 ... -
Scala 函数之map(返回集合)、reduce、flatMap、zip和foreach(无返回值)学习
2017-04-17 15:04 2216map和flatMap的区别 object collect ... -
Scala 符号 => 的用法(匿名函数(x:Int)=>x+1)
2017-04-17 10:58 6951. 表示函数的类型(Function Type) de ... -
Scala 下划线(_)的多种应用场景学习
2017-04-13 20:00 5831、作为“通配符”,类似Java中的*。如import sca ... -
Scala mkString方法(把一个集合转化为一个字符串)
2017-04-13 19:34 1203Problem 如果你想要把集合元素转化为字符串,可能还会添加 ... -
Scala yield案例 (for 循环和 yield 的例子)
2017-04-13 18:42 622下面是摘自 《Programming in Scala》关于 ... -
Scala 基本概念学习
2017-04-13 14:40 534Type Inference类型推断 当你声明的任何变量时,你 ...
相关推荐
这部分会讲解如何使用List、Set、Map等集合,以及如何进行集合操作,如映射、过滤、折叠等。此外,还会涉及Option和Either等类型,它们是处理可能的null值和错误的良好工具。 接着,"Scala进阶之路-part03-面向对象...
- **映射(Map)**:存储键值对,支持增删改查操作。 - **元组(Tuple)**:一组有序的数据集合,每个位置的数据类型可以不同。 - **集合**:包括List、Set等多种类型,支持丰富的操作。 #### 四、总结 Scala不仅具备...
Scala中集合的使用 大学生 1. List 列表的使用 2. Set 集合的使用 3.Map 映射的使用 4. 元组的使用
- XML映射文件通常包含SQL查询、参数映射和结果集映射,它们定义了MyBatis如何执行查询并将结果转换为Scala对象。 4. **Scala中的SQL查询** - 使用Scala版MyBatis,我们可以通过调用Mapper接口的方法执行SQL查询...
在 Scala 中,数组和 Map 是两种非常常用的数据结构。数组用于存储同类型的固定大小的数据集合,而 Map 则用于存储键值对。接下来,我们将详细探讨数组的常见操作以及 Map 的使用方法。 **数组操作** 1. **创建...
Scala 中 map 与 flatMap 的区别 在 Scala 中,map 和 flatMap 是两个非常重要的函数,它们都是函数式编程中的核心概念。虽然它们都可以将一个函数应用于集合中的每个元素,但是它们之间存在着很大的区别。 首先,...
- **不可变映射**:位于`scala.collection.immutable`包中,使用`Map`构造函数创建。 - 例如,`val map1 = Map("a" -> 1, "b" -> 2);` - **可变映射**:位于`scala.collection.mutable`包中,使用`mutable.Map`创建...
4. **集合框架**:Scala的集合库非常强大,包含了列表、数组、映射(Map)、集(Set)等多种数据结构。它们支持函数式编程操作,如map、filter、fold等。 5. **模式匹配**:Scala的模式匹配允许对值进行解构,用于...
学习目标遍历(foreach)使用类型推断简化函数定义使用下划线来简化函数定义映射(map)扁平化映射(flatMap)过滤(filter)排序(sort)默认排序 | sorted指定字段排序 | sortBy自定义排序 | sortWith分组(group...
读者可以学习到如何使用映射(map)、过滤(filter)、折叠(fold)等函数,以及如何自定义集合操作。 总的来说,这四本书籍构建了一个完整的Scala学习体系,从基础知识到高级特性的实践,再到特定领域如函数式编程...
5. **集合库**:Scala的集合库非常强大,包含各种序列、映射和集合操作,如map、filter、fold等,支持懒评估和并行操作。 6. **类型系统**:Scala的类型系统允许隐式转换和类型推断,有助于编写简洁的代码。 7. **...
数据结构章节介绍了Scala的集合类型,包括数组、元组、列表、队列、映射(Map)、和Set集合。集合操作部分进一步讲解了如何进行映射操作、扁平化映射以及过滤集合等高级操作。 总之,Scala高级语言设计的知识体系是...
- **集合(Set)和映射(Map)**: 掌握Scala中用于存储和检索元素的集合框架。 - **函数式风格**: 了解如何运用函数式编程的技巧来编写更简洁、高效的代码。 #### 类和对象 - **类、字段和方法**: 在Scala中定义类的...
### Scala的List类方法整合 在Scala编程语言中,`List` 类是处理有序集合的一种常见方式。本文将详细介绍 `List` 类中的多种方法及其用途,帮助开发者更好地理解和使用这些功能。 #### 1. `def + (elem: A): List...
Scala和Java之间的类型映射对于实现互操作性至关重要。例如,在Scala中,`String`类型对应Java中的`java.lang.String`;而在Java中,`int`类型对应Scala中的`Int`类型。 通过以上介绍可以看出,Scala不仅在理论上...
5. 集合框架:Scala的集合库是其强大功能的一部分,包括Seq、Set、Map等类型。源码揭示了这些集合如何实现高效操作,如转换、过滤和映射。 6.模式匹配:Scala的模式匹配功能是其语法的一大亮点,用于解构复杂数据...
- **映射**:Scala中的映射(Map)是一种键值对的集合。可以使用键来获取对应的值。 - **元组**:元组是一种固定大小的数据结构,用于组合多个值。每个位置的值都有特定的类型。 - **集合**:Scala中的集合框架包括了...
初始化maze游戏场景,使用java的JFrame实现可视化,以4x4九宫格作为游戏背景
在《Scala Cookbook》中,读者可以期待学习到以下关键知识点: 1. **基础语法**:涵盖Scala的基本数据类型(如Int, Double, String等)、变量声明、操作符、流程控制语句(如if-else, for循环)以及函数定义。 2. ...
- **集合框架**:Scala 提供了强大的集合框架,包括不可变集合(如 `Set` 和 `Map`)和可变集合(如 `ArrayBuffer`)。 ### 5. 类与对象 - **类与对象定义**:Scala 支持面向对象编程,可以定义类和对象,并实现...