Scala学习笔记——20170819

来源:互联网 发布:erp系统模拟软件 编辑:程序博客网 时间:2024/06/01 09:23

Scala 闭包

object Demo {    def main(args: Array[String]): Unit = {        a(0)        aa(1)(2)//先返回一个函数,向函数传一个值    }    //闭包    def a(x: Int): Unit = {        var num = 1        def b(y: Int): Unit = {            println(x + num + y)        }        b(2)    }    //闭包    def aa(x: Int): (Int) => Unit = (y: Int) => {        println("x=" + x)        println("y=" + y)    }}

Scala 集合

  • 不可变集合 (增、删、改会返回一个新的集合)
def demoVal(): Unit = {    println("---val---")    val list = List(5, 3, 4, 7, 2)    println(list.head) //第一个    println(list.tail) //除第一个的其他    println(list.isEmpty) //是否为null    val list1 = List(5, 3, 4, 7, 2)    val list2 = List(15, 3, 5, 6, 7, 6)    val list3 = list1 ++ list2 //List合并 或者 list1 ::: list2    println(list3)    val list4 = list2 :+ 10 //在后面增加元素   10 +: list2 在头部添加元素    println(list4)    val list5 = list1.addString(new StringBuilder, ":")    println(list5)    println(list1.apply(1)) //或者list(1)    val list6 = List.fill(3)("hello") //3个元素,都是“hello”    println(list6)    val list7 = List.tabulate(6)(n => n * n) //n是角标,0*0 1*1 2*2 3*3 4*4 5*5    println(list7)    println(list1.reverse) //倒序    println(list1.sorted) //由小到大排序    println(list1.sortWith(_ > _)) //由大到小排序    val list8 = list1.drop(1) //删除一个元素    println(list8)    val list9 = list1.dropWhile(_ < 6) //循环删除小于6的元素,当不满足条件时,马上跳出循环    println("list9 -> " + list9)    val list10 = List("hello", "world")    println(list10.mapConserve(_.toUpperCase))//对list内的所有元素进行操作    println(list10.map(_.toUpperCase))    println(list1.takeWhile(_ < 6)) //循环小于6的元素,当不满足条件时,马上跳出循环    println(list1.filter(_ < 6)) //过滤出小于6的全部元素    println(list1.diff(list2)) //去除list1中list1与list2的交集    println(list2.distinct) //去重    //后面还有很多……}
  • 可变集合 (增、删、改、查)
def demoVar(): Unit ={    println("---var---")    var list = new ListBuffer[Int]    list += 1    list += 3    list += 5    println(list)}

Scala 迭代器

  • 方法,遍历集合
object IteratorDemo {    def main(args: Array[String]): Unit = {        val list = List(1, 2, 3, 5)        val i = list.iterator        while (i.hasNext) {            println(i.next())        }        println("---")        val ri = list.reverseIterator //反向遍历        while (ri.hasNext) {            println(ri.next())        }    }}