Scala集合
一、数组
1、不可变数组
创建数组的方式
//定义一个T类型的数组,长度为10,如果希望存放任意类型,则T换成Any
var array=new Array[T](10)
//另外一种创建方式
var array=Array(12,48,65,78,59);
2、可变数组
创建数组:
var arr=new ArrayBuffer[Int](10)
var arr1=ArrayBuffer(1,2,3,4,5,6)
追加元素:
//在原有数组基础上创建一个新数组,并在原数组末尾增加了一个新元素,新元素值为10
arr1.append(10)
//在原数组开头追加元素,可以追加多个
arr1.prepend(555,999,888)
//插入到第三个元素后方
arr1.insert(3,999);
//直接在第一个元素后面追加一个数组
arr1.insertAll(1,arr1)
//删除下标为1的元素
arr1.remove(1)
//删除下标为0-10的元素
arr1.remove(0,10)
可变数组转换成不可变数组:
arr.toArray
不可变数组转换成可变数组:
arr.toBuffer
3、创建多维数组
//创建多维数组,最多五维数组,几个参数就是几维
Array.ofDim[Int](2,1,5,5,5)
二、List
.
1、不可变List
创建一个List集合
//由于List是抽象类,所以不能使用构造器生成对象,只能使用伴生对象生成一个List集合
var list=List(12,45,48)
访问List集合
print(list(1))
遍历List集合
list.foreach(println)
在原List集合后面新增元素,返回新的集合
var list1 = list :+ 23;
在原List集合前面新增元素,返回新的集合
var list2 = 15 +: list;
合并两个集合
var list3 = list1 ::: list2
//或者
var list3 = list1 ++ list2
2、可变列表ListBuffer
创建可变列表:
//构造器创建
var list= new ListBuffer[Int]
//利用伴生对象创建
var list2= ListBuffer(41,4,5,78,36)
添加元素
//添加多个元素
list.append(1,2,3,4,5,6)
//在头部添加三个元素
list.prepend(81,2,45)
//下标为0处插入元素8
list.insert(0,8)
//在下标0处插入一个集合的元素
list.insertAll(0,list)
删除元素
//从下标1开始删除两个元素
list2.remove(1,2)
//删除下标1的元素
list2.remove(1)
//删除值为36的元素
list2-=36
三、Set集合
1可变Set
添加元素
//添加一个值为14的元素
var set1=set + 14
合并两个Set
var set3 = set2 ++ set1
删除元素
//删除值为526的元素
var set2 = set1-526
2、可变Set集合
创建
//创建可变Set集合
var set=mutable.Set(1,2,5)
添加
//增加一个元素
set.add(101)
删除
//删除元素
set.remove(15)
四、Map
1、不可变Map
创建
var map:Map[Int,String] = Map(1->"一号value",2->"2号value")
访问输出
//普通访问
print(map(3))
//或
print(map.get(1).get)
//访问key为5的元素,如果没有返回0
print(map.getOrElse(5, 0))
2、可变Map
创建
var map=mutable.Map(1->"一号value",2->"2号value",3->"3号value")
添加元素
map.put(4,"4号元素")
删除元素
map.remove(key)
五、元组(可以存储最多22个元素,不限类型)
创建元组
var tuple=("hello",1,'a',true)
访问输出
//注意_2访问的是第二个元素,不是第三个,因为没有_0
print(tuple._2)
遍历输出
for (elem <-tuple.productIterator){
println(elem)
}
嵌套元组
var tuple2=("元组2","2",("嵌套元组",1,'a',false))