scala高階函數之seq


 

list是一個由首元素(head首元素)和其余元素組成的子List(tail), list還提供了idEmpty, 空列表nil等函數 。它是一個抽象類, 不能使用new來創建,需要使用伴生對象創建它。

 

list創建示例

package day3

object demo_list {
    def main(args: Array[String]): Unit = {
        // list的創建
        val list1 = Nil
        val list2 = List[Int](1,2,3,4,5)
        println(list1.isEmpty)
        println(list2.isEmpty)
        println(list2.head)
        println(list2.tail)
        
        val list3 = getListVale(list2)
        println(list3)
    }

    def getListVale(list: List[Int]): Int ={
        if (list.isEmpty) 0
        else list.head + getListVale(list.tail)
    }
}

 

list的增刪改查--增加

package day3

object demo_listcrdb {
    def main(args: Array[String]): Unit = {
        // 定義兩個不可變列表
        val left = List[Int](1,2,3,4,5,6,7,8)
        val right = List[Int](6,7,8,9,10)

        println("添加一個元素")
        // 增加  在left頭部位置加一個6,=
        var ret_list = left.+:(6) // 產生一個新的不可變的列表
        var ret_list2 = left.::(9) // 產生一個新的不可變的列表
        ret_list2 = left.:+(22)  // 在尾部加一個數值
        println(ret_list)
        println(ret_list2)
        println(left)
        println("-----------新增一個集合")
        ret_list2 = left.++:(right)  // left左側添加一個集合
        ret_list2 = left.:::(right)  // left左側添加一個集合
        println(ret_list2)
        ret_list2 = left.++(right)  // 在left末尾加一個集合
        println(ret_list2)

    }
}

 

刪改查

package day3

object demo_listcrdb {
    def main(args: Array[String]): Unit = {
        // 定義兩個不可變列表
        val left = List[Int](1,2,2,2,5,6,7,8)
        val right = List[Int](6,7,3,8,9,10)

        println("添加一個元素")
        // 增加  在left頭部位置加一個6,=
        var ret_list = left.+:(6) // 產生一個新的不可變的列表
        var ret_list2 = left.::(9) // 產生一個新的不可變的列表
        ret_list2 = left.:+(22)  // 在尾部加一個數值
        println(ret_list)
        println(ret_list2)
        println(left)
        println("-----------新增一個集合")
        ret_list2 = left.++:(right)  // left左側添加一個集合
        ret_list2 = left.:::(right)  // left左側添加一個集合
        println(ret_list2)
        ret_list2 = left.++(right)  // 在left末尾加一個集合
        println("list2---->" + ret_list2)

        println("------------刪除")
        val list3 = right.dropWhile(n=>n>5) // 從right左側開始刪除大於5的數,直到第一個條件不滿足為止
        println(list3)
        println("------------修改")  //list為不可變集合, 不可修改
        println("------------查詢")
        println(left(0), left(1), left(2))  //通過索引查詢
        println(left.length)  // 列表長度
        println(left.isEmpty)  //是否為空
        println(left.contains(4))  // 是否包含4
        println(left.mkString("[",",","]"))  // 格式化

        // 高隊函數 都是生成新列表
        println(left.distinct)  // 列表去重
        println(left.reverse) // 列表反轉
        println(left.take(3))  // 獲取集合中的前三個元素
        println(left.union(right)) // 並集


    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM