原创 39.ListBuffer、ArrayBuffer、Queue、Stack操作代碼實戰

一、ListBuffer、ArrayBuffer代碼實戰 import scala.collection.mutable.ListBuffer //可變的 val listBuffer = new ListBuffer

原创 32.List的基本操作實戰與基於模式匹配的List排序算法實現

一、List的基本操作實戰 package ce.scala.pp object HelloList { def main(args: Array[String]): Unit = { //7 val bigdata

原创 41.List繼承體系實現內幕和方法操作源碼揭祕

一、List的繼承體系分析和源碼解讀 1.List類 abstract class List[+A]  ... List是抽象的類,我們平時用List(1,2,3)來構建一個List對象,用的都是其伴生對象的apply方法 2.List有

原创 42.Scala中泛型類、泛型函數、泛型在Spark中的廣泛應用

一、Scala中的泛型類代碼實戰 sealed abstract class List[+A] extends AbstractSeq[A] with LinearSeq

原创 31.Option使用和實現內幕源碼揭祕

一、Option中的sealed關鍵字解析 sealed abstract class Option[+A] extends Product with Serializable {...} //注意這裏的sealed關鍵字 final

原创 47.Scala多重界定代碼實戰及其在Spark中的應用源碼解析

一個類型變量可同時擁有上界和下界,但是一個類型變量不可同時擁有多個上界或者下界 T <: A with B  //T是A或者B的子類 T >: A with B  //A或者B就是T的子類 T>: A <: B //T同時有上界、下界。

原创 43.Scala中類型變量Bounds代碼實戰及其在Spark中的應用源碼解析

一、Scala中的類型變量Bounds代碼實戰 //上界 class Pair[T <: Comparable[T]] (val first : T, val second : T) { //Comparable[T]是父類 /

原创 48.Scala類型約束代碼實戰及其在Spark中的應用源碼解析

   A =:= B //表示A類型等同於B類型    A <:< B  //表示A類型是B類型的子類型 def main(args: Array[String]): Unit = { def rocky[T](i

原创 33.List的一階函數操作代碼實戰詳解

一、List的drop、take、splitAt、apply、indices、toString、mkString等實戰 把兩個List組拼起來,列表和列表連接用三個冒號的連接操作符,元素和列表連接用兩個冒號的連接操作符 prin

原创 40.Set、Map、TreeSet、TreeMap操作代碼實戰

一、Set、Map代碼實戰 import scala.collection.mutable //因爲scala推薦我們用不可變包的裏集合,所以這裏需要導入mutable包 val data = mutable.Set

原创 46.ClassTag 、Manifest、ClassManifest、TypeTag代碼實戰及其在Spark中的應用源碼解析

一、ClassTag 、Manifest、ClassManifest、TypeTag代碼實戰 package ce.scala.zhong object Multiple_Bounds_46 { def main(args: A

原创 34.對List進行高效的排序和倒排序代碼實戰

package ce.scala.pp object MergedSort { def main(args: Array[String]): Unit = { def mergedsort[T] (less :

原创 30.模式匹配高級實戰:嵌套的Case class

有時候要表達一種類似於集合類型的元素,而元素本身的表示又是case class的實例,這時候就要用到嵌套 eg:書店中有很多書,很多書可以構成集合,而書本身用case class表達,集合也用case class表達。這時候就用嵌套。

原创 36.List的partition、find、takeWhile、dropWhile、span、forall、exists操作代碼實戰

一、partition、find、takeWhile、dropWhile實戰 println(List(1,2,3,4,5) partition(_ % 2 == 0)) //把List分成兩部分,偶數\奇數各一部分 p

原创 38.List伴生對象操作方法代碼實戰

一、apply、make、range代碼實戰 println(List.apply(1,2,3)) //1 2 3構成一個集合 println(List.make(3,5)) //5出現3次 println(