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
}
第14课Scala集合上的函数式编程实战及Spark源码鉴赏
最新推荐文章于 2018-11-21 18:14:00 发布