List的基本操作实战与基于模式匹配的List排序算法实现之Scala学习笔记-23

package com.leegh.dataset

/**
* @author Guohui Li
*/
object HelloList {
def main(args: Array[String]): Unit = {
val bigData = List("Hadoop", "Spark")
val data = List(1, 2, 3)

val bigData_Core = "Hadoop" :: ("Spark" :: Nil) //::右结合性
val data_Int = 1 :: 2 :: 3 :: Nil

println(data.isEmpty)
println(data.head)
println(data.tail.head)

val List(a, b) = bigData
println("a : " + a + "===" + " b : " + b)

val x :: y :: rest = data
println("x : " + x + "===" + " y : " + y + "===" + rest)

val shuffledData = List(6, 3, 5, 6, 2, 9, 1)
println(sortList(shuffledData))

def sortList(list: List[Int]): List[Int] = list match {
case List() => List()
case head :: tail => compute(head, sortList(tail))
}
def compute(data: Int, dataSet: List[Int]): List[Int] = dataSet match {
case List() => List(data)
case head :: tail => if (data <= head) data :: dataSet
else head :: compute(data, tail)
}
}
}

附:

本博客说明:

1.整理思路,提高自己。

2.受教于王家林老师,?有所收获,故推荐。

3.博客注重实践,多余的文字就不多说了,都是做技术的。

4.信息来源于 DT大数据梦工厂微信公众账号:DT_Spark。?

DT大数据梦工厂的微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习。

Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:

百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2

时间: 2024-12-23 10:06:02

List的基本操作实战与基于模式匹配的List排序算法实现之Scala学习笔记-23的相关文章

Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用之Scala学习笔记-41

package com.leegh.parameterization /** * @author Guohui Li *///由于breathe返回的是this,scala将返回类型推断为Animal,而由于Animal没有eat方法//class Animal { def breathe = this }//class Cat extends Animal { def eat = this } class Animal { def breathe: this.type = this }clas

基于比较的常用排序算法总结

基于比较的排序算法,应该是最符合人们直觉的方法.在各种算法的技术书上,已经证明了基于比较的排序算法的时间最优复杂度为O(nlogn). 下面是几种常见的基于比较的排序算法: 1. 选择排序:这应该是最直观的排序方法.在排序n个元素时,第一次遍历,找到最小的元素,将其与第一个元素互换:第二次遍历,找到次小的元素,将其与第二个元素交换:直至剩下最后一个元素. 2. 冒泡排序:这应该是我们学到的第一种排序算法.基本思想就是,通过依次比较相邻的两个元素,如后值比前值小,则交换这两个值,小值被交换到前面,

Type、Array、List、Tuple模式匹配实战解析之Scala学习笔记-18

package com.leegh.pattern_match /** * @author Guohui Li *//** * Type,Array模式匹配 */object Pattern_Match_More { def main(args: Array[String]): Unit = { def match_type(t: Any) = t match { case p: Int => println("It is Integer") case p: String =&g

模式匹配高级实战:嵌套的Case class之Scala学习笔记-21

package com.leegh.pattern_match /** * @author Guohui Li */ abstract class Itemcase class Book(description: String,price: Double) extends Itemcase class Bundle(description: String,price: Double,items:Item*) extends Itemobject Pattern_Match_Case_Class_

Scala并发编程实战初体验及其在Spark源码中的应用解析之Scala学习笔记-56

package com.leegh.actor import scala.actors.Actor /** * @author Guohui Li */object First_Actor extends Actor { def act() { for (i <- 1 to 10) { println("Step : " + i) println(Thread.currentThread().getName) Thread.sleep(2000) } }} object Seco

scala学习笔记(四)样本类与模式匹配

访问修饰符 格式:private[x]或protected[x],x指某个所属包.类或单例对象,表示被修饰的类(或方法.单例对象),在X域中公开,在x域范围内都可以访问: private[包名]:在该包名作用域内,被修饰域都能被访问: private[类名]:在该类的作用域,被修饰域都能被访问: private[this]:仅能在包含了定义的同一对象中访问,用于保证同一类中不能被其它对象访问: 例子: package tests{     private[tests] class Test{  

scala学习笔记-模式匹配(16)

模式匹配 1 // Scala是没有Java中的switch case语法的,相对应的,Scala提供了更加强大的match case语法,即模式匹配,类替代switch case,match case也被称为模式匹配 2 // Scala的match case与Java的switch case最大的不同点在于,Java的switch case仅能匹配变量的值,比1.2.3等:而Scala的match case可以匹配各种情况,比如变量的类型.集合的元素.有值或无值 3 // match cas

Scala中复合类型实战详解之Scala学习笔记-44

package com.leegh.parameterization import com.leegh.parameterization.Compound_Type /** * @author Guohui Li */ trait Compound_Type1;trait Compound_Type2;class Compound_Type extends Compound_Type1 with Compound_Type2object Compound_Type { def compound_

Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析之Scala学习笔记-49

package com.leegh.implicits import scala.io.Sourceimport java.io.File /** * @author Guohui Li */ class RichFile(val file: File) { def read = Source.fromFile(file.getPath()).mkString}object Context { implicit def file2RichFile(file: File) = new RichFi