博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala学习第五天 Scala数组操作实战详解
阅读量:2200 次
发布时间:2019-05-03

本文共 2607 字,大约阅读时间需要 8 分钟。

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

DT大数据梦工厂群号:302306504王家林老师微信号:wangjialinandroid
1、数组的基本操作

//声明一个固定长度的数组,类型为Int,元素个数为10. val nums = new Array[Int](10)  //声明一个类型为String的固定长度的数组,元素个数为10 .val a = new Array[String](10)/*直接以Array的方式声明一个数组,初始化第一个元素为'Hello',第二个元素为"World",通过类型推导,判断出*///数组的类型为String.val s = Array("Hello" ,"World")// 设置数组中存储的第一个元素为"Good"s(0) = "Good"for (elem<- s) println(elem)
val b = new ArrayBuffer[int]()   //ArrayBuffer是缓存数组,内容大小可以改变,可以参考  java里的String Buffer  b += 1 //b里增加一个为1的元素    结果是ArrayBuffer(1)  b += (1,2,3,5) //在已有的内容上,追加上1,2,3,5  结果是ArrayBuffer(1,1,2,3,5)  b ++= Array(8,13,21) //有两个加号,直接追加Array  结果是ArrayBuffer(1,1,2,3,5,8,13,21)  b.trimEnd(5) //去掉后面的5个元素  结果是ArrayBuffer(1,1,2)  b.insert(2,6) //在2的位置上插入6  结果是ArrayBuffer(1,1,6,2)  b.insert(2,7,8,9) //在2的位置上插入7,8,9  结果是ArrayBuffer(1,1,7,8,9,6,2)  b.remove(2) //除去索引为2的元素  结果是ArrayBuffer(1,1,8,9,6,2)  b.remove(2,3) //从索引2的元素开始,除去3个元素  结果是ArrayBuffer(1,1,2)  b.toArray  /*b.toArray结果不再是mutable的  ArrayBuffer了,而是变成Array,他的元素个数是固定的*/
for(i <- 0 until a.length)  //对a所有的元素遍历 println(i+":"+a(i))

2、数组的进阶操作

val c = Array(2,3,5,7,11) val result = for (elem <- c) yield 2*elem   /*遍历c的每一个元素,然后乘以2,yield使后面的表达式变为 一个集合,赋值给result*/ 结果是Array(4,6,10,14,22) c.filter(%2==0).map(2*_)  //每次判断元素是否是偶数,具有可读性 结果是Array(4)
Array(1,7,2,9).sum //Array的求总和的函数 结果是19 ArrayBuffer("Marry","had","a","little","lamb").max //求ArrayBuffer中的哪个字符串长度最长 结果是little
val d = ArrayBuffer(1,7,2,9) val bSorted = d.sorted  /*对ArrayBuffer里的元素排序 ,默认是升序*/
val e=Array(1,7,2,9)  Scala.util.Sorting.quickSort(e)    //对ArrayBuffer里的元素进行快速排序  e.mkString("and")  //把e的元素用and连接起来,转换成字符串  结果是1 and 2 and 7 and 9  e.mkString("<",",",">")  /*将e的元素以左边<,右边>,  中间用,号分隔*/  结果是<1,2,7,9>

3、多维数组

valmatrix=Array.ofDim[Double](3,4)    /*用Array的ofDim方法声明一个3行4列的矩阵,初始为Array(Array(0.0,0.0,0.0,0.0),Array(0.0,0.0,0.0,0.0),Array(0.0,0.0,0.0,0.0))*/  Matrix(2)(1)=42   /*在矩阵3行2列赋值为42,结果是Array(  Array(0.0,0.0,0.0,0.0),  Array(0.0,0.0,0.0,0.0),  Array(0.42.0,0.0,0.0,0.0))*/  valtriangle=new Array[Array[int]](10)    /*new Array一个数组,数组内部又是Array,有10个元  素,为Array(null,null,null,null,null,null,  null,null,null,null)*/  for(i <- 0 until triangle.length)  Triangle(i)=newArray[int](i+1)  /*对Array里面的Array赋值不同的长度,第一行一个元素,每行加一个元素,为Array(Array(0),Array(0,0),Array(0,0,0),Array(0,0,0,0),Array(0,0,0,0,0),Array(0,0,0,0,0,0),Array(0,0,0,0,0,0,0),Array(0,0,0,0,0,0,0,0),Array(0,0,0,0,0,0,0,0,0),Array(0,0,0,0,0,0,0,0,0,0)*/

4.worksheet

打开 ScalaIDE 选择 File -> New -> Scala WorkSheet, 建立一个名字为 ScalainAction 的 Scala WorkSheet。

每次保存就可以显示每个运算的结果,如下图所示:

这里写图片描述

Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:

百度云盘:

腾讯微云:

360云盘: 访问密码 45e2

你可能感兴趣的文章
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>
内存堆与栈
查看>>
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
查看>>
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
查看>>
Leetcode C++《每日一题》20200625 139. 单词拆分
查看>>
Leetcode C++《每日一题》20200626 338. 比特位计数
查看>>
Leetcode C++ 《拓扑排序-1》20200626 207.课程表
查看>>