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)) // 并集


    }
}

 

posted on 2021-08-21 17:59  孔扎根  阅读(1617)  评论(0编辑  收藏  举报

导航