第14课Scala集合上的函数式编程实战及Spark源码鉴赏

import scala.collection.mutable.SortedSet

/**
 *  1,在Scala的集合体系中Iterable是共同的Trait,Iterable要求继承者实现一些共同的方法,例如:元素循环遍历
 *  2,Array是一个基础数据结果,不从属于Scala集合体系
 *  3,Scala集合分可变与不可变的
 *  4,不可变集合包:scala.collection.immutable
 *  5,可变集合包:scala.collection.mutable
 *  6,List是元素的列表集合,是不可变的
 *  	第一点:list.head是返回第一个元素,list.tail是返回剩余元素集合
 *  	第二点:使用::这个操作符来把list和其他元素进行组合成新的list
 *  	第三点:集合中没有元素的话,返回Nil
 *  7,LinkedList是可变的列表元素
 * 	8,Set是元素不可重复的集合,且元素是无序的
 * 	9,HashSet元素是可变的,且是无序的
 *  10,LinkedHashSet会维护插入元素的顺序
 *
 */

object ScalaIterator14 {
  def main(args: Array[String]): Unit = {

    val range = 1 to 10
    //调用的是List的伴生对象apply方法
    //override def apply[A](xs: A*): List[A]
    val list = List(1, 2, 3, 4, 5, 6)
    println(list.head)
    println(list.tail)

    //::元素间连接操作
    println(0 :: list)

    //:::集合间连接操作
    println(list ::: List(7, 8, 9))

    //LinkedList,可变集合
    var linkedList = scala.collection.mutable.LinkedList(1, 2, 3, 4, 5)
    println(linkedList.elem)
    println(linkedList.tail)
    while (linkedList != Nil) {
      println(linkedList.elem)
      linkedList = linkedList.tail
    }
    println(linkedList)

    val copyLink = linkedList.+:(9)
    println(copyLink)

    //元素不可重复,无序
    val set = Set(1, 3, 2, 5, 4, 6, 2)
    println(set)

    val setMore = set + 1
    println(setMore)

    //HashSet
    val hashSet = scala.collection.mutable.HashSet(1, 2, 3, 4)
    hashSet += 5
    hashSet += 50
    println(hashSet)

    //LinkedHashSet
    val linkedHashSet = scala.collection.mutable.LinkedHashSet(1, 2)
    linkedHashSet += 3
    linkedHashSet += 50
    linkedHashSet += 4
    println(linkedHashSet) //Set(1, 2, 3, 50, 4)

    //排序Set
    val sortedSet = SortedSet(6, 5, 3)
    sortedSet += 9
    println(sortedSet) //TreeSet(3, 5, 6, 9)

    //占位符说明,当只有一个输入参数的时候,用占位符表示
    println(List("I am into Spark so much", "Spark so much").flatMap(_.split(" ")).
      map((_, 1)).map(_._2).reduce(_ + _)) //9

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值