关于scala 集合 List Map Set】的更多相关文章

1,数组 2,List,ListBuffer 3, Map , mutable.Map…
1. Map集合 1.1 Scala中的Map介绍 Scala中的Map 和Java类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala中不可变的Map是有序的,可变的Map是无序的. Scala中,有可变Map (scala.collection.mutable.Map) 和 不可变Map(scala.collection.immutable.Map) 1.2 构建map 构建不可变map ​ Scala中的不可变Map是有序,构建Map中的元素底层是Tuple2…
大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说: 1.数据集合:会涉及数据的搜集.存储等,搜集会有很多技术,存储技术现在比较经典方案是使用Hadoop,不过也很多方案采用Kafka.  2.对数据集合的操作技术,目前全球最火爆的是Spark.  Spark的框架实现是语言是Scala,首选应用程序开发语言也是Scala,所以Scala对集合以及集合操作的支持就非常重要且非常强大,因此Spark中对很多数据操作算子和Scala中对集合的操作是一样的.  Scala中数据的创建与操作…
优先使用不可变集合.不可变集合适用于大多数情况,让程序易于理解和推断,因为它们是引用透明的( referentially transparent )因此缺省也是线程安全的. 使用可变集合时,明确地引用可变集合的命名空间.不要用使用import scala.collection.mutable._ 然后引用 Set ,应该用下面的方式替代: import scala.collections.mutable val set = mutable.Set() 这样就很明确在使用一个可变集合. 使用集合类…
映射 映射是对偶的集合. 声明映射 映射是对偶的集合. a.声明映射 b.映射中的键值对称作对偶,用( , )表示 c.当映射中不存在key时,取值会报错,解决方案是使用 contains方法,或者getOrElse方法 默认使用的映射中的value是不可修改的,位于scala.collection.immutable包中.如果要修改,必须使用位于scala.collection.mutable包中的Map类型 如果要迭代每一个对偶,还是使用for循环 看代码: object TestScala…
1. 数组 1.1 定长数组 scala.Array 是定长的可变的索引型集合, JVM 中, Scala 的 Array 是以 Java 数组方式实现. String 对应 java.lang.String, Int, Double或其他与 Java 中基本类型对应数组都有基本类型数组, 比如说 Array(1, 2) 在 JVM 中就是一个 int[]. val arr1 = new Array[Int](10) val arr2 = Array(1, 3) // 调用apply方法 arr…
Java 集合 : 数据的容器,可以在内部容纳数据  List : 有序,可重复的  Set : 无序,不可重复  Map : 无序,存储K-V键值对,key不可重复 scala 集合 : 可变集合(ArrayList) & 不可变集合(数组)  String(不可变字符串), (StringBuilder, StringBuffer)(可变字符串) 集合的基本方法 val list: List[Int] = List(1,2,3,4) // 反转集合 //println(list.revers…
Scala的集合框架类比Java提供了更多的一些方便的api,使得使用scala编程时代码变得非常精简,尤其是在Spark中,很多功能都是由scala的这些api构成的,所以,了解这些方法的使用,将更加有助于我们学习Scala和Spark: List,Map,Set的一些api的用法如下:  /** * Scala 集合测试 */ def collectionTest(): Unit ={ val map =Map("red"->"红色","gree…
将函数映射到集合 map方法 val names = List("Peter" , "Paul", "Mary") names.map(_.toUpperCase) // 等同于 for(n <- names) yield n.toUpperCase flatMap方法,如果函数产出一个集合,又想将所有值串联在一起 def ulcase(s:String) = Vector(s.toUpperCase(), s.toLowerCase())…
Scala集合的主要特质 Iterator,用来访问集合中所有元素 val coll = ... // 某种Iterable val iter = col.iterator while(iter.hasNext) iter.next() Seq是一个有先后次序的值得序列,比如数组或列表.IndexSeq允许我们通过整型的下标快速访问任意元素,如ArrayBuffer是带下标的.Set是一组没有先后次序的值,在SortedSet中,元素以某种排过序的顺序被访问.Map是一组(K,V)对偶,Sort…