Scala学习路线所用到的所有示例


import java.io.{FileNotFoundException, FileReader, IOException}
import java.util.Date
import scala.collection.immutable
import scala.collection.mutable.{ArrayBuffer, ListBuffer}
import scala.xml.dtd.ANY
import Array._
import scala.{+:, ::}
import scala.collection.mutable.Set
import scala.io.Source
import scala.sys.process
import scala.util.control.Breaks.{break, breakable}

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


    /*var or val*/
//    var a = 1
//    val b =2
//    a =3
//    b = 4  //error : reassignment to val
//    println(a, b)


    /*if judge*/


    /*if else if*/
//    var score = 10
//
//
//    if (score > 90){
//
//      print("优秀")
//
//    }else if(score > 80){
//
//      print("良好")
//
//    } else if(score > 60){
//
//      print("及格")
//
//    }else{
//
//      print("不及格")
//
//    }

    /*match*/

//    var score = 61
//
//    score match {
//      case 69 => {
//        print("69")
//    }
//      case 65 =>{
//        print("65")
//      }
//      case _ => print("none")
//
//    }

    /*match 2*/
//    val list = List(1,2,3.4,"spark","hive")
//    for(i <- list){
//      val rs =  i match {
//        case i:Int =>"i is a Int"
//        case i:Double => "i is a double"
//        case i:String => "i is string , "+i
//        case _ => "i is unknown type"
//
//      }
//      println(rs)
//    }
    /*match 3 use guard */
//    val list =List(1,2,3,4,5,6)
//    for(ele <- list){
//      val rs = ele match {
//        case _ if(ele %2 == 0) => {ele+" is a even."}
//        case _ => {ele +"is a odd."}
//      }
//      println(rs)
//    }



    /* loop*/


    /*while*/
//    var i = 1
//
//    while(i<10){
//
//      print("i is :"+i)
//
//      i+=1
//
//    }


    /*do ... while */


//    var i =0
//    do{
//
//      print("i is :" +i)
//      i+=1
//
//    }while(i < 10)

    /*for*/

//    val listA = List(1,2,3,4,5);
//    for(m <- listA
//        if m < 4; if m != 2){
//print("elements is :"+m)
//    }

    /*for loop use range*/
//    for(i <- range(1,10)){
//      println(i)
//    }

    /*for eg2*/
//    for(i <- 1 to 10 by 3){
//      println(i)
//    }

    /*for use offset*/
//    for(i <- range(1,10,2) ){
//      println(i)
//    }




    /*for and if judge*/
//    for (i <- 1 to 10
//         if i%2 == 0){
//      print(i)
//
//    }







    /*for and yield*/

//    val yieldTest = for{i <- 1 to 10
//                              if i%7 == 0
//                              }yield i
//
//    for(i <- yieldTest){
//      print(i)
//    }

    /*yield eg2*/
//    var testVar = for {i <- 1 to 10
//                       if i % 3 == 0
//                       } yield {print(i)
//      i }
//    println(testVar)


    /*more creater for*/
//    for( i <- range(1,9); j <- range(1,9)){
//      println(i," * ",j,"=",i*j)
//    }

    /*break*/
//    val arr = Array(1, 2, 49, 4, 88, 10)
//    breakable{
//      for(i <- arr){
//        if(i>5) break
//        println(i)
//      }
//    }

    /*continue*/
//    val arr = Array(1, 2, 66, 4, 88, 10)
//    for(i <- arr){
//      breakable{
//        if(i >50){
//          break
//        }
//        println(i)
//      }
//    }





    /*String*/

    /*StringBuilder*/
//    val builder = new StringBuilder
//    builder += 'a'  //+= for char add,so need ''
//    builder ++= "def"  // ++= for string add ,so need ""
//    println(builder.length)

    /*add*/
//    val str1 = "abc"
//    val str2 = "ddd"
//    var str3 = str1.concat(str2)
//    var str4 = str1 + str2
//    println(str3)
//    println(str4)

    /*split*/
//    val str1 = "abc"
//    val str2 = "dddeddddeddddd"
//    val str3 = "a,b,c,d,e,f,e,1"
//    var arr1 = new Array[String](10)
//    arr1 = str3.split(",")
//    for (i <- arr1){
//      println(i)
//    }
//    arr1.foreach{x => println(x)}

    /*stringBuffer*/
//    var arrB1 = ArrayBuffer[Int]()
//    arrB1.append(1)
//    for(i <- arrB1){
//      println(i)
//    }
//    arrB1.foreach{x => println(x)}

    /*Array*/

//    var arr1 = new Array[Int](3)
//    arr1(0) = 1
//    arr1(1) =2
//    arr1.foreach(x => print("first:"+x+"\n"))
//
//    println("------------------")
//
//    arr1(0)=999
//    arr1.foreach(x => print("second:"+x+"\n"))

    /*create a array's two method*/

//    var arr1 = Array(111,222.333,6666)
//    arr1.foreach(println("arr1: ", _))
//
//    val arr2 = new Array[Int](3)
//    arr2(0) = 9999
//    arr2(1) = 88888
//    arr2.foreach(println("arr2: ",_))


    /*Array Buffer*/

//    var arr1 = new ArrayBuffer[Int]()
//    arr1.append(1)
//    arr1.append(2)
//
//    arr1.foreach(x => println(x))
//    println("-----------")
//    println(arr1(0))

    /*two dim array*/
//    var arr1 = Array.ofDim[Int](2,2)
//    arr1(0)(0) = 1
//    arr1(0)(1)  = 2
//    arr1.foreach{x => x.foreach(y => println(y))}

    /*array concat*/
//    var arr2 = new Array[Int](1)
//    arr2(0)=3
//
//    var arr3 = new Array[Int](1)
//    arr3(0) = 4
//
//    var arr4 = concat(arr3, arr2)
//
//    arr4.foreach(x => println(x))
//    for(i <- arr4){
//      println(i)
//    }



    /*range array*/
//    var arr1 = range(1,10)
//    arr1.foreach(x => println(x))


    /*add 3 once*/
//    var arr2 = range(1,10,3)
//    arr2.foreach(x => println(x))



      /*for loop use range*/
//    for(i <- range(1,10)){
//      println(i)
//    }





    /*========================collection==================================*/




    /******************************list*********************************/
//    var list1 = List(1,2,3)
//
//    list1.foreach(x => println(x))
//
//    println(list1(0),list1(2))
//
//    println("------change ele-----------")
//
//    //list1(0) = 9999 //error : value update is not a member of List[Int]
//
//    println(list1(0))

    /*list*/
//    var arr1 = List(1, "2",3)
//    arr1.foreach(x => println(x))

    /*statement method2*/
//    var list1 = 1::2::Nil
//    list1.foreach(x => println(x))

    /*common method*/
//    var lb = new ListBuffer[Int]
//    lb.append(1)
//    lb.append(2,3,4)


//    lb.foreach(x => println(x))

    /*apply*/
//    println(lb.apply(1))

    /*drop*/
//    var lb = new ListBuffer[Int]
//    lb.append(1,2,3,4)
//    var listTem = new ListBuffer[Int]
//    listTem = lb.dropRight(2)
//    listTem.foreach(x => println(x))

    /*drop while*/
//    var lb = new ListBuffer[Int]
//    lb.append(1,2,3,4,5)
//
//    var lbTemp = new ListBuffer[Int]
//    var len = lb.length
//    lbTemp = lb.dropWhile(len => len<3 )
//    lbTemp.foreach(x => println(x))


    /*exist*/
//    val listString = new ListBuffer[String]
//    listString.append("张三","李四","麻子","赵四"," ")
//    var flag:Boolean = listString.exists(x => x.equals("zhangsan"))
//    val flag2 = listString.exists(x => x.equals("赵四"))
//
//    println("flag :"+flag)
//    println("flag2 :"+flag2)

    /*indexOf*/
//    val lb = new ListBuffer[String]
//    lb.append("张三","李四","王五","赵四"," ")
//
//    var index1 = lb.indexOf("张三")
//    println(index1)
//    println("------------------")
//    var index2 = lb.indexOf("张三1")
//    println(index2)


    /*lastIndexOf*/
//      val lb = new ListBuffer[String]
//      lb.append("张三","李四","王五","赵四"," ","张三")
//    var index = lb.lastIndexOf("张三")
//    println(index)

    /*map*/
//    val lb = new ListBuffer[String]
//    lb.append("张三","李四","王五","赵四"," ","张三")
//    var list2 = lb.map(x => x.trim+"2333")
//
//    list2.foreach(x => println(x))

    /*max min*/
//    var lb = new ListBuffer[Int]
//    lb.append(1,2,3,4,5)
//    var x = lb.max
//    println(x)
//
//    println("----------------")
//    var n = lb.min
//    println(n)

    /*sorted and sortedBy*/
//    var lb = new ListBuffer[Int]
//    lb.append(1,2,9,4,5,2)
//    var lb2 = lb.sorted
//
//    lb2.foreach(x => println("lb2 : "+x))
//
//    println("---------------")
//
//    var sortTest = (i:Int) => {
//      i match {
//        case 1 => 2
//        case 2 => 1
//        case 4 => 0
//        case _ => 3
//      }
//    }
//
//    var lb3 = lb.sortBy(sortTest)
//    lb3.foreach(x => println("lb3: "+x))

    /*sortedBy 2*/

//    //create a Class Person
//    class Person(age:Int, salary:Double, name:String){
//      var Age = age
//
//      var Salary  = salary
//
//      var Name  = name
//
//
//    }
//
//    val lisa = new Person(38, 2.3, "lisa")
//    val nana = new Person(1, 3.4, "nana")
//    val zhaoSi = new Person(1, 5.9, "赵四")
//    val grandpa = new Person(80, 20, "grandpa")
//
//    //create a list
//    var listPerson = new ListBuffer[Person]
//
//    listPerson.append(lisa, nana, zhaoSi, grandpa)
//
//    //create a sort rule
//    var sortRule = (p:Person) => {
//      (p.Age, p.Salary)
//    }
//
//
//    //list sort use the list Rule
//    var listPersonSorted = listPerson.sortBy(sortRule)(Ordering.Tuple2(Ordering.Int.reverse,
//      Ordering.Double.reverse
//      ))
//
//    listPersonSorted.foreach(x => println(x.Name, x.Age, x.Salary))

    /*list concat*/
//    var list1 = List(1)
//    var list2 =List(2)
//
//    //method 1
//    var list3 = list1:::list2
//
//    //method 2
//    var list4 = List.concat(list1, list2)
//    list3.foreach(x => println(x))
//    list4.foreach(x => println("list4: "+x))


    /**********************Tuple****************************/

    /*create tuple*/
    //    val tuple1 = (1,"yi",3.4)
    //    println(tuple1._1)

    /*foreach*/
    //    val tuple1 = (1,"yi",3.4)
    //
    //    tuple1.productIterator.foreach(println(_))

    /**********************Vector************************************/

    /**create a vector*/
//    val vector1 = Vector(1,2,33,"爱神的箭")
//    vector1.foreach(println(_))
//    println(vector1.getClass.getName)

    /**concat vector**/
//    val vector1 = Vector(1,2,33,"爱神的箭")
//
//    val vector2 = vector1:+1
//    vector2.foreach(println("vector2 :",_))
//
//    val vector3 = 666+:vector1
//    vector3.foreach(println("vector3 :",_))

    /************************ Range***********************************/
//    val range1 = new Range(1,5,2)
//    range1.foreach(println(_))

//
//    println(1 to 5 by 1)
//    println(1.to(5).by(2))
//    println(1 until 5)
//    val a = .5f to 10.8f by 0.5f
//    a.foreach(println(_))

    /****************************************set *****************/


    /*set's head tail isEmpty*/
//    var set1 =Set("一",1,2,"er")
//    var set2 = Set()
//    println("set1.head :"+set1.head)
//    println("set1.tail:"+set1.tail)
//    println("set1.isEmpty:"+set1.isEmpty)
//    println("---------------")
//
//    println("set2 :"+set2.isEmpty)
//    println(set2.getClass.getName)



//    println(set1.apply(1))
//    println(set1.apply(9999))

    /*set concat*/
//    var set1 =Set(1,2,3)
//    var set2 =Set(4,5)
//
//    var set3 = set1++set2
//
//    var set4 = set1.++(set2)
//    println("set3: "+set3)
//    println("set4: "+set4)

    /*set max min */
//    var set1 = Set(1,2,3,99,100.3)
//    println(set1.max)

    /*set max min 2*/
//    var set2 = Set("a", " b","C")
//    println("set2: "+set2.max)



    /*Set.intersect*/
//    var set1 = Set(1,2,3,99,100.3)
//    var set2 = Set(1,100.3)
//    var set3 = set1.&(set2)
//    var set4 = set1.intersect(set2)
//
//    set3.foreach(println(_))
//    println("----------------")
//    set4.foreach("set4: "+println(_))

    /*set count*/
//    var set1 = Set(1,2,3,99,100.3)
//
//    println(set1.apply(3))
//    println(set1.contains(2222222))

    /*set filter*/
//    var set1 = Set(1,2,3,99,100.3)
//    var set2 = set1.filter(_>3)
//
//    set2.foreach(println(_))

    /*set forall*/
//    var set1 = Set(1,2,3,99,100)
//    println(set1.forall(_ >=1))

    /*iterator*/
//    var inter = Iterator(1, 2, 3, 4)
//    while (inter.hasNext){
//
//      println(inter.next())
//    }

    /*iterator's max min*/
//    var iter = Iterator(1, 2, 3, 4)
//    println(iter.max)
//    println(iter.min)

    /*iterator's find*/
//    var iter = Iterator(1, 2, 3, 4)
//    iter.find(_>2)
//    while (iter.hasNext){
//      println(iter.next())
//    }
    /*set  flatmap*/
//    var iter = Iterator(1, 2, 3, 4)
//    var iter2 = iter.flatMap(e => e * 10)
//
//    while (iter2.hasNext){
//      iter2.next()
//    }

    /*****************Map*************************************map*/
    //val map1 = Map("name" -> "zhangsan", "age" -> "10")


    /*mutable map*/
//    val map2 = scala.collection.mutable.Map("name"->"zhangsan","gender"-> 2)
//    map2 +=("age" -> 12)
//
//    map2.foreach(println(_))


//    map1.foreach(println(_))
//    println(map1.get("name"))

    /*use key get value*/
//    println(map1("name"))
//    println(if(map1.contains("gender")) map1("gender") else 0 )

    /*isEmpty*/
//    println(map1.isEmpty)

    /*get all keys*/
//    println(map1.keys)

    /*get all values*/
//    val map2 = Map("name" -> "zhangsan", "age" -> "10")
//    println(map2.values)

    /*merge two map*/

//    val map2 =Map("name" -> "hangman2", "age" -> "10","gender"->1)
//    val map3 = Map("name" -> "zhangsan3", "age" -> "10")
//    val map4 = map2 ++ map3
//    map4.foreach(println(_))

    /*get all keys and values*/
//    val map2 =Map("name" -> "hangman2", "age" -> "10","gender"->1)
//    map2.keys.foreach(i => {
//
//      print("key is ", i)
//      println("value is ", map2(i))
//
//    })

    /*apply*/
//    val map2 =Map("name" -> "hangman2", "age" -> "10","gender"->1)
//    println(map2.apply("name3"))

    /*exists*/
//    val map2 =Map("name" -> "hangman2", "age" -> "10","gender"->1)
//    println(map2.exists(x => x._1 == "age" && x._2 == "10") )

    /*filter*/
//    val map2 = Map("name" -> "hangman2", "age" -> "10","gender"->1)
//    println(map2.filter(x => x._1 == "name"))



    /*high map's foreach*/
//    val map1 = Map("zs"->"张三","ls"->"李四","ww"->"王五")
//    map1 foreach (x=>println(x._1,x._2))
//
//    map1 foreach {x => x match {
//      case (k,v) => {println(k,v)}
//    }}
//
//    map1 foreach {
//      case (k, v) => {
//        println(k, v)
//      }
//    }


    /*map*/
//    val list = List("hadoop","hive","spark")
//    val list2 = list.map(s => s.toUpperCase())
//    list2.foreach(println("list2: ",_))
//    val list3 = list.map(s => println(s.length))

    /*flatmap*/
//    val list = List("hadoop","hive","spark")
//    println(list.flatMap(s => s.toList))

    /*filter*/
//    val map1 = Map("zs"->"张三","ls"->"李四","ww"->"王五")
//    val map2 = map1 filter  {x=> x._1 contains("s") }
//    map2.foreach(x=> println(  x._1, x._2))
   /* reduce*/
//    val list = List(1,2,3,4,5)
//    val num = list.sum
//    val num2 = list.reduce(_+_)
//    println(num)
//    println(num2)

    /*fold*/
//    val list = List(1,2,3,4,5)
//    val rs = list.fold(10)(_*_)
//    println(rs)
//
//    val list2 = (list fold 10) (_+_) //infix
//    println(list2)





    /**
     * method
     *
     * */
//    def add(b: Int, a: Int)={
//
//      var c = a
//      var d =b
//      a+b
//
//    }


    /*get set */
//    class classTest{
//      private var privateVar = 0;
//      def value=privateVar
//
//      def value_=(newValue:Int): Unit ={
//        if(newValue>0){
//          privateVar = newValue
//        }
//
//      }
//
//
//    }
//
//    val myClassTest = new classTest
//    myClassTest.value=3
//    println(myClassTest.value)

    /*Infix */
//    class MyClassTest{
//      private var age = 0
//
//      def increment(addAge :Int){
//        return age += addAge
//      }
//
//      def curent:Int={age}
//
//      def getAge():Int ={
//        return age
//      }
//
//    }
//    val classTest = new MyClassTest
//    classTest increment 5
//    println("this is current method :", classTest.curent)
//    println("this is getAge method :", classTest.getAge())

    /*infix eg2:*/
//    class MyClass{
//      def add(b:Int): Int ={
//        var c = b +3;
//        return c
//      }}
//
//    val clazz = new MyClass
//    println(clazz add 3)

    /*omit parameter's () */
//      var b =0
//      def add(c:Int){
//        b += c
//      }
//    add(666)
//    println(b)

    /*Omit method's parameter*/
//    def add1 ={
//      var c = "this is c"
//      print("this is c2222")
//    }
//
//    println(add1)


    /***
     * function
     *
     */

    /*function's declare*/
    //    var function0 = (a:Int, b:Int) => a+b
    //    println(function0(1,3))
    /*eg2*/
    //    var func1 = (a:Int,b:Int) => a.toString+ b.toString
    //    println(func1(1,2))




    /*use a function as parameter*/
    //    def highOrderFunc1  (a:Int, b:Int):Int= a + b
    //
    //    def highOrderFunc2 ( f : =>Int, g:Int)= println("2222222")
    //    println(highOrderFunc2(highOrderFunc1(1,2),2))


    /*eg2*/
    //    def getTime()={
    //
    //      print("这是 getTime方法")
    //
    //      System.nanoTime
    //    }
    //
    //
    //    def test(f: => Long)={
    //
    //      print("time is "+f)
    //
    //    }
    //
    //    test(getTime())


    /*create a func eg*/
//    var func:(Int,String)=> String = {(para1,para2) => para1*2+" -----"+para2}
//    println(func(2,"OK"))
//    println(func.getClass.getName)

    /*Anonymous function*/

//   var anonymousTest:(Int,Int)=>Int = (a:Int, b:Int) => a+b
//   println(anonymousTest(1,2))












    /*list test*/

    //create a list
    val listTemp = List(1,2,3)
    //print(listTemp)

    //create a list
    val listTemp2 = 1::(2::(3::Nil))
    //print(listTemp2)

    //two dimension list
    val listTwoDim = List(1,List(1,2,3))

    //option

    val listForOpt = List(1,2,3,'四',List(5,6))
    val listOpt2 = List(1,2) ;
    //1.add elements

    //print(listForOpt:::listOpt2)  //concat two list

    //print(listForOpt::("one", "two")::Nil)  //concat two list

    // print(List.concat(listForOpt,listOpt2)) //to concat two list

    //print(List.fill(10)("2"))  //repeat elements 2 ,  10 times








    //2.delete

    //3.change

    //4.search


    //print(listForOpt.head)  //get first elements of list

    //print(listForOpt.tail)  //return except first element's other ones

    //print(listForOpt.isEmpty)  //judge the list is empty or not

    /**
     *
     * Class
     *
     *
     */
    //    class  People(var name:String){
//
//      def introduce(): Unit ={
//        println("my name is :", name)
//      }
//    }
//
//    val zhangs = new People("zhangsan")
//    zhangs.introduce()
//
//    println("get the people's old name ",zhangs.name)
//
//    zhangs.name = "zhangXiaoSan"
//    println("get the people's new name ",zhangs.name)





    /*create var in method*/
//    class myMethodTest(var var1:Int){
//      def outPutTest(): Unit ={
//        println(var1)
//      }
//}
//    val test = new myMethodTest(1)
//    test.outPutTest()

    //reference a method
//    val c = add(1,2)
//    print(c)


    /*
    * 111111111````````````````````````````````````*/


    /* test the default parameter */
//    val date = new Date()
//    def testLine1(a:Date, b:String): Unit ={
//
//      print("date:"+a,"b:"+b)
//    }
//
//    val testLine2 = testLine1(date, _:String)  //Default parameter
//
//
//    testLine2("12121bbbbb") //need only one para,cause Default parameter



    /* make a  method  to a function*/
//    def methodTransfer(a:Int, b:Int): Int ={
//
//      print("a+b is ", a+b)
//      return a+b
//    }
//
//    val methodTransferTest = methodTransfer _
//
//    var tmp = methodTransferTest(1,2)
//    println("methodTransferTest",tmp )
//    println("-----------")
//     tmp = methodTransfer(1,3)
//    println("methodTransfer ", tmp)


      /*eg2*/
//    def changeMethod1 (a:Int, b:Int)={
//      println("test here")
//      a+b
//    }
//
//    val mVar = changeMethod1 _
//    println(mVar(1,2))

    /****** Apply *******/
//    class ApplyTest {
//      def apply(name:String): Unit ={
//        printf("called apply method , and name is %s",name)
//      }
//    }
//    val test = new ApplyTest
//    test("张三")

    /*apply2 */
//    def add = (x:Int, y:Int) => x+y
//
//    println("这里没有调用apply", add(1,2))
//    println("这里调用 apply:",add.apply(2,3))


    /*update*/
//    val arr2 = new Array[Int](3)
//    arr2(0) = 9999
//    arr2(1) = 88888
//    arr2.update(2,9999)
//    arr2.foreach(println("arr2: ",_))

    /*apply  use case*/
//    case class Dog(val name:String){
//      def bark(): Unit ={
//        println("dog is wangwang")
//      }
//    }
//
//    val daHuang = Dog("daHuang")
//    daHuang.bark()

    /*unapply*/
//    class People(val name:String){
//      def peopleInfo(): Unit ={
//        println("this people‘s name is :")
//      }
//    }
//    object People{
//      def apply(name:String): People ={
//
//        return new People(name)
//      }
//
//
//      def unapply(c:People): Option[String] ={
//
//        return Some(c.name)
//      }
//    }
//
//   var People(getName) =  People("张三")
//    println(getName)
    /******************unapply 2 ****************************/
//    class Animal(val name:String, val theType:String){
//      def animalInfo(): Unit ={
//        printf("this Animal‘s name is %s, type is %s", name, theType)
//      }
//    }
//    object Animal{
//      def apply(name:String,theType:String): Animal ={
//
//        return new Animal(name,theType)
//      }
//
//
//      def unapply(c:Animal): Option[(String,String)] ={
//
//        return Some(c.name,c.theType)
//      }
//    }
//
//    val animal1 = Animal("大黄","狗狗")
//    animal1.animalInfo()
//    println("")
//
//
//    val Animal(n,t) = animal1
//    printf("the animal's name is %s, and the type is %s",n,t)




    //    class ApplyTest(name:String){
//      def speak(){
//        val name = this.name
//        println(name+"is speaking")
//      }
//
//
//    }
//    object ApplyTest{
//      def apply(name:String): ApplyTest ={
//        new ApplyTest(name)
//      }
//
//    }
//    val p1 = ApplyTest("张三")
//    p1.speak()


    /*option eg1:*/
//    case class Dog(val dname:String){
//
//      val price_Dic = Map("柯基"->1000,"金毛"->"1100","边牧"->1500)
//
//      def queryPrice(): Option[Any] ={

//        return price_Dic.get(dname)
//      }
//    }
//
//    val d1 = Dog("金毛").queryPrice()
//    println(" return is",d1)
//    println("金毛 price is",d1.get)
//
//    val d2 =Dog("柴犬").queryPrice()
//    println(" return is",d2)
//    println("柴犬’s price is ", d2.getOrElse("Option retrun None"))


    /* case */
//    case class People(val name:String, val age:Int){
//
//    }
//    val saveList = new ListBuffer[String]
//    val peopleList = List(People("zs",1),People("ls",2),People("ww",9999))
//
//    for(ele <- peopleList){
//      val result = ele match {
//        case People("zs",1) => {"this is ww 33"}
//        case People("zs",99) => {"this is  张三, 99岁了"}
//        case People(pname,page) =>{"this people's name is "+pname+", and page is "+page}
//      }
//
//      saveList.append(result)
//    }
//    saveList.foreach(println(_))



    /*option eg2:*/
//    case class Dog(val name:String, val age:Int){
//
//      }
//    val myPet = Map("大黄"->Dog("大黄",3),"四眼"->Dog("四眼",2))
//    println(myPet.get("四眼"))



    /********  abstract  *****/
//    abstract class People(){
//      val name:String
//
//      def speak()
//      def info(): Unit ={
//        printf("this people's name is %s", name)
//      }
//    }
//
//    case class Male(pname:String) extends People {
//      val name = pname
//
//      override def speak(): Unit = {
//        printf("the man is speak")
//      }
//
//      }
//
//    val male1 = Male("尼古拉斯-张三")
//    male1.speak()


    /*Trait*/
//    trait Runable{
//      def category:String
//      def run(): Unit ={
//        printf("%s can run",category)
//      }
//    }
//
//    trait Flyable {
//      def category: String
//
//      def fly(): Unit = {
//        printf("%s can fly", category)
//      }
//    }
//      abstract class Animal(val theName:String){
//        def info()
//
//      }
//
//    case class Dog() extends Animal("Dog") with Runable{
//      override def category: String = "哺乳动物"
//
//      override def info(): Unit = {
//      printf("the category is %s, and the name is %s \n",category,theName)
//      }
//      }
//
//
//    val erHa = Dog()
//    erHa.info()
//    erHa.run()

    /*package*/
//import Animal.Canidae.Dog
//    val dog = new Dog()
//    dog.abc()
//
//    import Animal.Felidae.Cat
//    val cat = new Cat
//    cat.miao()





    /*exception*/
//    try{
//      val reader = new FileReader("input.txt")
//
//    }catch {
//      case fileNotFoundException: FileNotFoundException  => {println("this is a file not find ex")}
//      case ex: IOException => {println("this is a IOexception")}
//
//    }finally {
//      println("there is a error")
//    }

    /*word Count*/
//import java.io.File
//import scala.collection.mutable.Map
    val textFilePath ="D:/doc/spark/input"
//
//    //create a File
//    val dirFile = new File(textFilePath)
//    //to get every file or dir's path
//    val files = dirFile.listFiles()
//
//
//    //to save the word
//    val resultMap1 = Map.empty[String,Int]
//
//    //to get every file in the dir
//    for(file <- files){
//
//      //get every file's data
//      val data = Source.fromFile(file)
//
//      //to get every word
//      var str = data.getLines().flatMap(s => s.split(" "))
//
//      // judge and count
//      str foreach {
//        word =>
//          if(resultMap1.contains(word)){
//            resultMap1(word) += 1
//
//        }else{
//            resultMap1  += (word->1)
//
//        }
//      }
//
//    }
//
//
//    //print the result
//    resultMap1.foreach(x => println(x._1,x._2))
//    println("--------------")
//
//    //filter null
//    val resultMap2 = resultMap1.filter(x  => x._1.nonEmpty)
//    resultMap2.foreach(x => println(x._1,x._2))
//
//    println("--------------")
//    //sortBY
//    val resultMap3 = resultMap2.toList.sortBy(_._2)
//    resultMap3.foreach(x => println(x._1,x._2))



  }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值