您的位置:首页 > 其它

Scala学习第五天 Scala数组操作实战详解

2015-08-28 20:22 441 查看
信息来源于 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、代码下载:

百度云盘:http://pan.baidu.com/s/1c0noOt6

腾讯微云:http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: