当前位置: 首页 > news >正文

莘县制作网站网站没内容

莘县制作网站,网站没内容,怎么申请域名邮箱,九寨沟网站建设规划书文章目录 数组 Array创建数组直接定义fillofDimtabulate range打印数组toSeqdeepforeach(println) length获取长度indexOf 获取元素索引获取元素/修改元素遍历数组数组内元素转换filter 过滤found 查找元素数组折叠 foldLeft切片拼接排序拷贝copyclone 数组 Array Array是一个… 文章目录 数组 Array创建数组直接定义fillofDimtabulate range打印数组toSeqdeepforeach(println) length获取长度indexOf 获取元素索引获取元素/修改元素遍历数组数组内元素转换filter 过滤found 查找元素数组折叠 foldLeft切片拼接排序拷贝copyclone 数组 Array Array是一个固定大小的集合原数组上无法进行添加/删除操作可以通过filter 生成新数组完成目的定义数组通常数组内元素的数据类型是统一的当你向数组中存储不同类型数据需要使用any对象var 定义Array 修改的数组是因为变量重新指向了新数组的内存地址并不是数组的修改Array内的元素修改并不是修改了Array地址Array相当于容器内部元素变了并不是容器变了。数组的索引为0~~(数组长度)-1索引没有反向索引只有正向的。 创建数组 直接定义 val ary:Array[Int] Array(0,1,2,3)fill fill(int1,int2)(填充值)int1:维度int2:元素数量 注意创建二维数组的时候如果声明变量需要按照二维数组声明 // 创建一维数组 val ary1: Array[Int] Array.fill(5)(0)// 创建二维数组 val ary7 Array.fill(2, 3)(0) println(ary7.deep) //Array(Array(0, 0, 0), Array(0, 0, 0))ofDim Array.ofDim[Int](int1,int1) 作用通fill 但是填充值默认为0,(如果变量声明了类型ofDim可以不声明) 注意创建二维数组的时候如果声明变量需要按照二维数组声明 // 创建一维数组 val ary1 Array.ofDim[Int](3) println(ary1) //Array( 0, 0, 0)// 创建二维数组 通fill val arr1 Array.ofDim[Int](5,3) println(arr1.deep) //Array(Array(0, 0, 0), Array(0, 0, 0), Array(0, 0, 0), Array(0, 0, 0), Array(0, 0, 0))// 变量声明元素类型ofDim可以省去 val arr1:Array[Array[Int]] Array.ofDim(5,3)tabulate 创建数组内容根据函数计算,可以创建123维度数组 Array.tabulate(int1,int2)(lambda) // tabulate,创建数组元素根据函数计算 val arr4 Array.tabulate(5)(n n*n) println(arr4.deep) //Array(0, 1, 4, 9, 16) /* 0*0,1*1,2*2.... */// 创建二维数组 三行四列元素 相当于 i循环三次 创建三个arry val arr5 Array.tabulate(3,4)((i,j)ij) println(arr5.deep) /* i:0 j 0,1,2,3 i:1 j 0 1 2 3 i:2 j 0 1 2 3 i:3 ......*/range range(s,e,n),s起始e结束n步长只能取到e-1 val arr2 Array.range(0, 10) println(arr2.deep) //Array(0,1,2...9)val arr3 Array.range(0, 10, 2) println(arr3.deep)//Array(0,2,4,6,8)打印数组 在scala中打印直接println数组得到的是内存地址想要查看数组内容需要使用以下方法。 toSeq 转换为Seq类型打印简单结构只能打印第一层如果是二维数组/嵌套结构使用toSeq会展示Array(内存地址1内存地址2) val ary:Array[Int] Array(0,1,2,3) println(ary.toSeq) //WrappedArray(0,1,2,3)val ary:Array[Array[Int]] Array(Array(1,2,3),Array(1,2,3)) println(ary.toSeq) //WrappedArray([I724af044, [I4678c730)deep 递归打印可以展示复杂结构通用 val ary:Array[Array[Int]] Array(Array(1,2,3),Array(1,2,3)) println(ary.deep) //Array(Array(1, 2, 3), Array(1, 2, 3))foreach(println) foreach 一个遍历方法结合println进行打印效果同toSeq也就只打印第一层对于多维数组或者嵌套结构会展示内存地址。 length获取长度 val ary:Array[Int] Array(0,1,2,3) println(ary.length) //4indexOf 获取元素索引 indxeOf(目标元素,index位置)同python中的index 默认返回第一个出现元素的位置当使用第二个参数会从指定索引后查询元素第一次出现的位置 val ary1 Array(999, 1, 2,66, 3, 4,66) println(ary1.indexOf(66)) //3//从索引4开始查找找到的一个66就是数组中的最后一个 println(ary1.indexOf(664)) //6获取元素/修改元素 获取元素:ary.apply(index) 等价于 ary(index) 注意与python不同不能直接在表达式上获取元素如Array(0,1,2,3)(0) val ary:Array[Int] Array(0,1,2,3) //效果一致 print(ary.apply(0));print(ary(0))修改元素:ary(index) new val val ary:Array[Int] Array(0,1,2,3) ary[0] 9999 println(ary) //(9999,1,2,3)遍历数组 通常结合for循环使用 val ary:Array[Int] Array(0,1,2,3) for (a-ary){println(a)}数组内元素转换 // 使用map方法配合toString进行转换 val arrStr1 ary.map(zz.toString)//使用匿名变量 _ 代替 zz val arrStr1 ary.map(_.toString)filter 过滤 //filter配合 匿名函数 n n%2 0 val filterarr ary.filter(n n%2 0 )//使用匿名变量 val filterarr ary.filter(_%2 0 )found 查找元素 find 方法用于在集合中查找满足特定条件的第一个元素。它返回一个 Option 类型该类型可以是 Some包含满足条件的元素或 None如果没有元素满足条件。 因此当你使用 ary.find(n n 3) 时如果数组 ary 中存在元素 3那么 find 方法将返回 Some(3)。如果没有元素 3那么它将返回 None。 需要注意的是find 方法返回的是元素本身而不是元素的索引。如果你需要查找元素的索引你可以使用 indexOf 方法。 getOrElse当获取不到元素时候可以指定返回值建议返回值与预期返回类型一致避免类型冲突。 val ary: Array[Int] Array(0, 1, 2, 3) // 查找元素 found_ary 返回元素本身 val found_ary ary.find(n n 3) println(found_ary) //Some(3) // 查询不到返回None val found_ary2 ary.find(n n 999) println(found_ary2) //None// 当找不到899返回66 getOrElse类型可以与正常返回不一致不建议 val found_ary3 aryzz.find(n n 899).getOrElse(66)// 匿名函数写法 val found_ary ary.find(_3)数组折叠 foldLeft 类似python reduct 在 Scala 中foldLeft 方法是一个高阶函数用于通过某种操作将集合中的所有元素组合或折叠成单个值。foldLeft 方法接受两个参数一个初始值称为“零值”以及一个二元操作函数。 ary.foldLeft(0)(_ _) 的作用是将数组 ary 中的所有元素与初始值 0 进行加法操作并将结果累积起来。这里的 _ _ 是一个匿名函数它接受两个参数并返回它们的和。 具体来说foldLeft 方法的工作方式如下 它从数组的第一个元素开始将其与初始值这里是 0一起传递给二元操作函数这里是 _ _。然后它将操作的结果与数组的下一个元素一起传递给二元操作函数。这个过程会一直持续直到数组中的所有元素都被处理完毕。 fold 方法是 foldLeft 和 foldRight 的通用版本。它接受一个初始值和一个二元操作函数并返回一个累积的结果。fold 方法的行为与 foldLeft 相同因为它默认从集合的头部开始。 // 数组求和积 val sum ary.foldLeft(0)(__) val product ary.foldLeft(0)(_*_) println(sum,product)// 不用匿名函数 val sum ary.foldLeft(0)((a,b)ab)切片 array.slice(start,end),只能取到end-1 // 数组切片 val ary:Array[Int] Array(0,1,2,3) val new_ary ary.slice(0,2) println(new_ary.toSeq) //(0,1)拼接 new_ary Array.concat(ar1,ar2) ar1ar2 // 数组拼接 相当于 Array.concat(ary,Array(7,8,9)) val newarry aryArray(7,8,9) val newarry2 Array.concat(ary,Array(7,8,9)) println(newarry.toSeq)排序 升序 ary.sorted降序ary.sorted(Ordering[Int].reverse) //排序 val ary1 Array(999, 1, 2,66, 3, 4) val ary1_sord ary1.sorted println(ary1_sord.toSeq) //WrappedArray(1, 2, 3, 4, 66, 999)、// 逆序排序 ary1.sorted(Ordering[Int].reverse)reverse翻转 //反转与顺序无关 val reversedary ary.reverse println(reversedary.toSeq) //WrappedArray(4, 3, 66, 2, 1, 999)拷贝 在 Scala 中对于基本类型的数组如 Int、Double、Char 等深拷贝通常不需要特别处理因为基本类型是不可变的。但是对于包含对象引用的数组你需要手动实现深拷贝确保数组中的每个对象都被正确地复制。 copy 浅copy copy(原数组,被copy起始位置,目标数组,copy到起始位置,copy长度) //源数组(被copy) val ary: Array[Int] Array(0,1,2,3)//创建目标数组(copy到这里) val new_copyarray2 Array.fill(ary.length)(0)//数据copy val new_copyarray3 Array.copy(ary,0,new_copyarray2,0,ary.length)clone 浅copy val new_copyarray3 ary.clone() println(new_copyarray3.toSeq)
http://www.w-s-a.com/news/423200/

相关文章:

  • 陈村网站建设有哪些网站可以做店面设计
  • 查询网站注册信息wordpress 照片墙
  • 成都网站设计服务商室内设计设计师网站推荐
  • 企业建站系统cms百度网址ip
  • wordpress 代码编辑插件下载搜索引擎优化seo课程总结
  • 韩都衣舍网站建设的改进邯郸公众号小程序制作
  • 上海设计网站建设在线视频制作
  • 东营高端网站建设新建网站如何让百度收录
  • wordpress怎么生成网站地图微网站平台怎样做网站
  • 同安区建设局网站招投标公众号简介有趣的文案
  • 江苏州 网站制作网上宣传方法有哪些
  • 做网站时怎样申请域名郑州制作网站公司
  • 深圳 网站开发公司电话网站关键词快排名
  • 网站建设的工作总结seo同行网站
  • 网站需要兼容哪些浏览器sql数据库做的网站怎么发布
  • 营销型网站的建站步骤是什么意思广州门户网站建设公司
  • 汕尾好网站建设推广计算机软件包含网站开发
  • 建设工程施工许可证在哪个网站办wordpress更换主题白屏
  • 微交易网站建设wordpress摘要调用
  • 做网站维护需要懂什么网站后台后缀名
  • 网站建设的认可桂平市住房和城乡建设局网站
  • 网站设计师岗位职责域名关键词查询
  • 百度怎样建设网站盐城公司网站建设
  • 站长工具国产2023网站制作 商务
  • 网络新闻专题做的最好的网站杭州网站设计建设公司
  • 电商网站界面设计流程ps培训班一般学费多少钱
  • 西安网站运营上海闵行区网站制作公司
  • 宁波网站推广代运营长链接转化成短链接工具
  • 小企业如何建网站怎么自己制作app
  • 苏州品牌网站制作公司宁波建设工程有限公司