您的位置:首页 > 其它

Scala学习第十三弹 数组遍历和数组转换

2016-08-19 15:04 302 查看
数组遍历

可以利用for循环来遍历数组或者数组缓冲

for(i <- o to until a.length)//变量i的取值范围是0到a.length -1

until是RichInt类的方法,返回所有小于(但不包括)上限的数字

例如:0 until 5 //Range(0,1,2,3,4)

注意:0 until 5实际上是一个方法调用0.until(5)

如下结构:

for(i< 区间)会让i遍历该区间的所有值

但如果想要每两个元素一跳,可以这样遍历:

0 until (a.length,2)//后面参数就是几个元素一跳

如果想要从尾部开始遍历:

(0 until a.length).reverse

如果不需要数组下表的话,可以使用下面的方式:

for(elem <- a) println(elem)//elem会先辈设定成a(0),然后a(1)······

数组转换

在Scala中可以很方便的进行数组的转换,从一个数组(或数组缓冲)出发,对其进行某种转换是很简单的,这些转换动作并不会改变原有数组,而是会产生一个新的数组。

像这样使用for的推导式:

val a = Array(1,2,3,4)

val b = for(elem <-a) yield 2 * elem//得到的是:b=Array(2,4,6,8)

for (······) yield循环创建了一个与原始数组类型相同的新数组,同样重数组缓冲出发,得到的是数组缓冲,结果包括yield后面的表达式的值,每次迭代对应一个。

通常,在遍历一个集合时,如果只想处理数组中特定的元素,可以通过守位(if)进行实现,例如:

for(elem <-a if elem % 2 ==0 )yield 2 * elem

//对a集合中的偶数元素进行翻倍吗,并丢弃奇数元素

注意:结果是一个新的数组,原有数组并没有受到影响
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scala