一数组:
1.不可变数组:
定义:
val arr1 = new Array[Int](10) val arr1 = Array(1, 2)
增加元素:
val arr1=Array(1,2,3,4) val arr2: Array[Int]=arr1 :+ 5 //数组后面添加元素 val arr3: Array[Int]=0 +: arr2 //数组前面增加元素
2.可变数组:
定义:
import scala.collection.mutable.ArrayBuffer //需要导入 val arr4=ArrayBuffer(22,33,44)
增加元素:
val arr4=ArrayBuffer(22,33,44) arr4+=55//数组后面添加元素 11 +=: arr4 //数组前面添加元素 arr4.append(88,99)//后面添加元素 arr4.prepend(1,2) //前面添加元素 for(i<-arr4){ println(i) }
3.多维数组:
val arr = Array.ofDim[Double](3,4)
二List(数据有序,不重复)
1.不可变List:
val list=List(1,2,3,4) val list1=5::list//::从右往左增加元素 val list2=list :+ 6 :+7 :+ 8 // 增加元素 // 5 +: list (前面增加元素) // list +: list (后面增加元素) val list3=list1:::list2 //::: 将两个List合并 或者++
2.可变List:
import scala.collection.mutable.{ArrayBuffer, ListBuffer}//需要导入 val listBuffer=ListBuffer(3,4,5) listBuffer.append(6)//后面添加 listBuffer.prepend(1)//前面添加 listBuffer += 7 // +=后面添加 2 +=: listBuffer // +=: 前面添加 listBuffer.foreach(print)
三.Set(数据无序,不重复)
因为Set是无序的,所以无所谓前面添加元素,还是后面添加元素
import scala.collection.mutable object Test_Set { def main(args: Array[String]): Unit = { val set=mutable.Set(4,5,6,7) set += 3 //添加 set -= 7 //删除 set.add(2) //添加 set.remove(6) //删除 set.foreach(print) } }
四.Map集合(数据按key有序)
key-value键值对
1.不可变Map:
val map=Map("a"->1,"b"->2,"c"->3) for(k<- map.keys){ println(s"key= $k value= ${map.get(k).get}") // 因为get访问Map集合的时候,会返回一个特殊类型Option选项 // Option中包含有值Some 和无值:None //map.get(k)若是Some类型的,再进一步调用get函数,取得key所对应的value }
2.可变的Map:
package scala.ssy.Learning.Six import scala.collection.Map import scala.collection._ object Test_Map { def main(args: Array[String]): Unit = { val map=mutable.Map("b"->2,"c"->3,"d"->4) val map1=mutable.Map("b"->3,"c"->1,"d"->2,"e"->5) map.put("a",1) map.remove("d") map1 ++= map //map1会把map中没有的元素并入,然后有的值会用map中的更新 map.foreach(print) println() map1.foreach(print) } }
五.Tuple(将多个无关的数据封装成一个整体)
package scala.ssy.Learning.Six object Test_Tuple { def main(args: Array[String]): Unit = { val tuple:(Int,String,Boolean)=(1,"hello",true) println(tuple._1) println(tuple._2) println(tuple._3) for(elem<- tuple.productIterator){//迭代器访问 println(elem) } } }