1.定长数组
2.变长数组:使用关键字ArrayBuffer
遍历数组
Scala数组的常用操作
scala --动态数组删除
remove(1)–删除某个值
remove(0,3)–从0开始删除3个。
trimEnd(2)–从数组后面开始删除2个。
可变转成不可变,toArray
set集合
val s= List(1,2,3,4,5)
//一个list由head和tail,head为第一元素,tail是剩下的元素。
val l2=1::2::Nil
print(l2)
//定义一个可变的list
val l5=scala.collection.mutable.ListBuffer[Int]()
l5+=2
l5+=(3,4,5)
//拼接list
l5++=List(7,8,9)
l5-=2
l5--=List(7,8,9)
//转成定长的list,tolist,定长的array.toarray
print(l5)
//set无序而且去除重复。
val l3=Set(1,2,2,1,4,3)
val l4=scala.collection.mutable.Set[Int]()
l4+=3
print(l3)
map集合
映射就是Map集合,由一个(key,value)组成。
-> 操作符用来创建
例如:
val scores = Map(“Alice” -> 10,”Bob” -> 3,”Cindy” -> 8)
映射的类型分为:不可变Map和可变Map
val scores=Map("Alice"->10,"Bob"->3,"cindy"->8)
//不可变
val math=scala.collection.immutable.Map("Alice"->10,"Bob"->3,"cindy"->8)
//可变
val english=scala.collection.mutable.Map("Alice"->10,"Bob"->3,"cindy"->8)
val chinese=scala.collection.mutable.Map(("Alice",10),("Bob",3),("cindy",8))
print(chinese("Bob"))
print(chinese.get("Bob"))
//不存在的话会抛exception
if(chinese.contains("Alice")){
chinese("Alice")
}else{
-1
}
//简单写
chinese.getOrElse("Alice",-1)
//更新映射中的值(必须是可变Map)
chinese("Bob")=100
//往map中添加元素
chinese+="Tom"->85
//移除元素
chinese-="Bob"
//迭代map
for(s<-chinese){
print(s)
}
tuple元组
元组是不同类型的值的聚集。
例如:val t = (1, 3.14, “Fred”) // 类型为Tuple3[Int, Double, java.lang.String]
这里:Tuple是类型,3是表示元组中有三个元素。
元组的访问和遍历:
//定义一个tuple.包含3个元素
val t1=(1,2,"Tom")
val t2=new Tuple4("Mary",3.14,100,"hello")
//访问tuple中的组员,使用._访问tuple的元素
print(t2._1)
print(t2._2)
//注意:要遍历Tuple中的元素,需要首先生成对应的迭代器。
// 不能直接使用for或者foreach。
t2.productIterator.foreach(i=>print(i))