Scala基础—集合函数式编程示例(占位符的使用示例)

来源:互联网 发布:xp怎么连接网络打印机 编辑:程序博客网 时间:2024/06/07 10:15
package com.spark.scala.basicsimport scala.collection.mutable/**  * 1.scala集合体系中,Iterable是共同的TraitIterable要求继承者实现一些共同的方法,例如对元素的遍历等;  * 2.Array是基础的数据结构,不从属于scala集合体系  * 3.scala集合体系中集合分为可变集合与不可变集合,不可变的集合在scala.collection.immutable包中  * 可变的集合在scala.collection.mutable包中  * 4.List是元素的列表集合,是不可变的  * 1)Listhead是第一元素,tail是剩下的元素构成的List集合  * 2)使用::这个操作符来把List和其他的元素进行组拼,来构建新的List  * 3)如果集合中没有元素的话,此时为Nil,例如说List中只有一个元素,那么head就是这个元素,tail就会返回Nil  * 5.LinkedList是元素可修改的  * 6.Set是元素不可重复的,且元素是无序的,不可变的  * 7.HashSet是可变的,无序的  * 8.LinkedHashSet会维护元素插入的顺序  * 9.SortedSet会自动的把插入的元素进行排序  */object Functional_Iterable {  def main(args: Array[String]): Unit = {    val range = 1 to 10    val list = List(1, 2, 3, 4, 5) //伴生对象的apply()    println(list.head)    println(list.tail)    // ::操作    println(0 :: list)    //LinkedList    var linkedList = mutable.LinkedList(1, 2, 3, 4)    println(linkedList.elem) //第一个元素    println(linkedList.tail)    while (linkedList != Nil) {      println(linkedList.elem)      linkedList = linkedList.tail    }    val copied = linkedList.+:(9)    println(copied)    //Set    val set = Set(1, 2, 3, 4, 5)    val setMore = set + 6    println(setMore)    //hashSet mutable包下    val hashSet = mutable.HashSet(1, 2, 3)    hashSet += 5    hashSet += 50    println(hashSet)    //LinkedHashSet    val linkedHashSet = mutable.LinkedHashSet(1, 2, 3)    linkedHashSet += 5    linkedHashSet += 50    println(linkedHashSet)    //SortedSet    val sortedSet = mutable.SortedSet(1, 2, 4, 6, 3)    println(sortedSet)    println(List[String]("I am into Spark so much!", "Scala is very powerful").flatMap { x => x.split(" ") }.map {x => (x, 1)}.map(x => x._2).reduce(_+_))    println(List[String]("I am into Spark so much!", "Scala is very powerful").flatMap { x => x.split(" ") }.map {(_, 1)}.map(_._2).reduce(_+_))    println(List[String]("I am into Spark so much!", "Scala is very powerful").flatMap { x => x.split(" ") }.map {(_, 1)}.map(_._2).reduce((x, y) => x + y))    List(1,2,3,4,5).foreach(x => println(x))    List(1,2,3,4,5).foreach(println(_))    List(1,2,3,4,5).foreach(println _)    List(1,2,3,4,5).foreach(println)  }}
原创粉丝点击