1.高级for循环和for推导式
a.变量<-表达式可以提供多个生成器
for(i<-1 to 3;j<-1 to 3 if i!=j) print((10*i+j)+" ")
b.for循环的循环体以yield开始 ,for循环推导式
for(i<-1 to 10)yield i%3
for{i<-1 to 3 from=4-i j<-from to 3 }2.编写一个函数countdown(n:Int),输出n到0的数字
def countdown(n:Int) :Unit={
for(i<-1 to n+1)print(n-i+1+" ")
countdown(10)
思路:首先满足递减,其次要满足输出的最后一位是0
3.数组
A.定长数组
val a=new Array[String](10)
B.变长数组:数组缓冲(ArrayBuffer)
val b=ArrayBuffer[Int]()
b+=1 //用+=在尾端添加元素
b.trimEnd(5)//在尾端移除最后五个元素
b.insert(2,6)
在下标2之前插入元素6
b.remove(n)移除的是下标为n的元素
b.remove(n,m)移除的是下标为n的,数m个元素全部移除
C. 遍历数组和数组缓冲
val a=Array(2,3,4,5)
for (i<-a)print(i)
for(i<-0 until a.length)println(i+":"+a(i))
如果想两个元素一跳,可以这样遍历元素
D.数组转换
for(elem<-a if elem%2==0)yield elem*2
a.filter(_%2==0).map(2*_)
a.filter{_%2==0} map{2*_}
E.scala的内置函数
Array(1,3,9).sum
ArrayBuffer("Mary","Had","Jim").max
排序
val b=Array(1,6,2,10)
val bSorted=b.sorted
F.与java的互操作
scala.collection.JavaConversions里的隐式转换方法
import scala.collection.JavaConversions.javaAsJavaList
import scala.collection.mutable.ArrayBuffer
val command=ArrayBuffer("ls","-al","/home/ary")
val pb=new ProccessBuilder(command)// scala到java的转化