object HelloWorld {
def main(args: Array[String]): Unit = {
var res = for (i <- 1 to 10 if i % 2 == 0) yield { //生成器,变量每一次都会被初始化
breakable{
if(i>=8) break
println(i)
}
i
}
print(res)
}
}
数据结构:
数组:
Array:可变,元素相同类型
var arr =new Array[Int](5)
var arr2 = Array("GigData","Spark")
元组:
可以包含不同的类型。
var tuple =("BigData",1,0.1)
scala> tuple._1 res0: String = BigDataList:
相同类型的不可变序列,scala.collection.immutable包
var strList = List("Hadoop","BigData","Spark")
val mutableList =ListBuffer(10,20,30) mutableList +=40 //在尾部添加40 println(mutableList) mutableList.insert(0,5) println(mutableList) mutableList.remove(0) println(mutableList)
RangeListBuffer(10, 20, 30, 40)
ListBuffer(5, 10, 20, 30, 40)
ListBuffer(10, 20, 30, 40)
不可变,带索引的一个等差序列
val v =new Range(1,10,2)//第一个是起始,第二个是终止,第三个是步长
for( i <- v){
println(i)
}
}
集合:
Set:不重复元素的容器
var myset =Set("Hadoop","Spark")
myset+="Scala"
映射Map
var myMap = Map("1" -> "laowang", "2" -> "zhanghua")
myMap("3") = "wahaha"
myMap +="4"->"hehe"
println(myMap)
迭代器Map(2 -> zhanghua, 1 -> laowang, 4 -> hehe, 3 -> wahaha)
val iter =Iterator("Hadoop","Spark","Scala")
while (iter.hasNext){
println(iter.next())
}



