• 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)) // 并集
    
    
        }
    }
  • 相关阅读:
    CV大牛/实验室主页
    mendeley使用技巧
    卷积理解与思考
    CMake构建OpenGL项目
    信号与系统学习(2)-跃阶信号
    信号与系统学习(1)-正弦信号和指数信号
    txt转换为mat
    matlab取整函数
    三维观察流水线的理解
    C#中文和UNICODE字符转换方法
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/15170197.html
Copyright © 2020-2023  润新知