蘑菇云课堂代码
package com.dt.scala.moguyun
/**
* 1,在Scala的集合体系中Iterable是共同的Trait,Iterable要求继承者实现一些共同的方法,例如对元素的遍历等;
* 2,Array是一个非常基础的数据结构,不从属于Scala集合的体系;
* 3,Scala的集合体系中集合分为可变集合与不可变集合之分;不可变的集合在scala.collection.immutable包中,
* 可变的集合在scala.collection.mutable;
* 4, List是元素的列表集合,是不可变的:
* 第一点:List中head是指第一个元素,tail是指剩下的元素构成的List集合;
* 第二点:使用::这个操作符来把List和其它的元素进行组拼来构建新的List
* 第三点:如果集合中没有元素的话,此时为Nil,例如说List中只有一个元素,那么head就是这个元素本身,
* tail操作就会返回Nil
* 5,LinkedList是元素可变的列表
* 6, Set是元素不可重复的集合,且元素是无序的;HashSet中的元素不可变且不可重复且不能够保证顺序;
* 7,LinkedHashSet会维护元素的插入顺序;
* 8, SortedSet会自动的把插入的元素进行排序;
*/
object Functional_Iterable {
def main(args: Array[String]): Unit = {
println("============list============")
/*
List,Tuple长度固定,元素不可变
*/
val range = 1 to 10
val list = List(1, 2, 3, 4, 5)
println(list.head)
println(list.tail)
println(0 :: list) //元素与集合相连是用::,而集合与集合相与是用:::
println(list(2))
//list(1) = 10 //报错:List是不可变的,里面元素不可修改
println("============ListBuffer============")
/*
ListBuffer长度可变,元素可变
*/
val listBuffer = scala.collection.mutable.ListBuffer(1,2,3)
listBuffer.append(5)//添加一个元素
listBuffer += 8//添加一个元素
listBuffer -= 2//移除第二个元素
println("listBuffer: " + listBuffer)
println("============LinkedList============")
var linkedList = scala.collection.mutable.LinkedList(1, 2, 3, 4, 5)
println(linkedList.elem) //这是取出第一个元素,会改变集合内容
println(linkedList.head) //第一个元素
println(linkedList.tail)
while (linkedList != Nil) {
println(linkedList.elem)
linkedList = linkedList.tail //重新赋值了
}
println("linkedList: " + linkedList)
//+: 在列表的头部添加一个元素
//:+ 在列表的尾部添加一个元素
//:: 在列表的头部添加一个元素
val copied = linkedList.+:(9)//.+:等价于+:
println(copied)
println("============Set============")
val set = Set(1, 2, 3, 4, 5)
println(set)
val setMore = set + 10
println("Set: " + setMore)
println("============HashSet============")
val hashSet = scala.collection.mutable.HashSet(1, 2, 3)
hashSet += 5
hashSet += 50
println("hashSet: " + hashSet)
println("============LinkedHashSet============")
val linkedHashSet = scala.collection.mutable.LinkedHashSet(1, 2, 3)
linkedHashSet += 5
linkedHashSet += 50
linkedHashSet += 4
println("linkedHashSet: " + linkedHashSet)
println("============SortedSet============")
val sortedSet = scala.collection.mutable.SortedSet(1, 2, 3, 5, 50, 4)
println("SortedSet" + sortedSet)
println(List[String]("I am into Spark so much", "Scala is 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 powerful").flatMap { x => x.split(" ") }.map {
(_, 1)
}.map(_._2).reduce(_ + _))
println(List[String]("I am into Spark so much", "Scala is powerful").flatMap { x => x.split(" ") }.map {
(_, 1)
}.map(_._2).reduce((x, y) => x + y))
List(0, 1, 2, 3, 4, 5).foreach { x => println(x) }
List(0, 1, 2, 3, 4, 5).foreach { println(_) }
List(0, 1, 2, 3, 4, 5).foreach { println _ }
List(0, 1, 2, 3, 4, 5).foreach { println }
List(0, 1, 2, 3, 4, 5).foreach(println)
}
}
以上内容来自[DT大数据梦工厂]首席专家Spark专家王家林老师的课程分享。感谢王老师的分享,更多精彩内容请扫描关注[DT大数据梦工厂]微信公众号DT_Spark