Scala学习第五天 Scala数组操作实战详解
2015-08-28 20:22
543 查看
信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
DT大数据梦工厂群号:302306504王家林老师微信号:wangjialinandroid
1、数组的基本操作
2、数组的进阶操作
3、多维数组
4.worksheet
打开 ScalaIDE 选择 File -> New -> Scala WorkSheet, 建立一个名字为 ScalainAction 的 Scala WorkSheet。
每次保存就可以显示每个运算的结果,如下图所示:
Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:
百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
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、代码下载:
百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
相关文章推荐
- Python实现KNN算法
- MyEclipse6.5下struts2+spring2+hibernate3 整合
- Ubuntu14.04安装后vim不可用的问题
- Android应用如何开机自启动、自启动失败的原因
- Ascii表中字符的个数
- 线段树 区间更新 访问POJ3468 A Simple Problem with Integers解题报告
- 分析json、xml的区别?json、xml解析方式的底层是如何处理的?
- UGUI处理ScrollRect的滑动被OnDrag函数拦截的一点技巧
- jsp开发环境的搭建
- Android照片墙实现 -- 功能介绍
- startActivityForResult和setResult详解
- 提交给mysql java驱动的优化下个版本要发布了^_^
- 线性回归的java实现
- 我是小白,关于oracle xe连接sql developer的失败问题
- Red and Black 深搜
- j2ee学习方法摘要
- 3. Longest Substring Without Repeating Characters
- srm666 div1 222
- Python中的可变参数
- 火车进站