val arr01 = new Array[Int](4) // 定义一个数组,类型为Int,长度为4的数组
arr01(3)=10 // 修改数组arr01的下标为3的元素
import scala.collection.mutable.ArrayBuffer
val arr02 = ArrayBuffer[Any](3, 2, 5) // 定义一个类型为Any的变长数组
# 可变数组的增删改查
arr02(0) // 查询数组arr01的第一个元素
arr02.appned(10) // 在数组尾部进行追加
arr02(0)=5 // 修改数组的第一个元素值为5
arr02.remove(1) // 删除数组下标为1的元素
# 数组的遍历
for (i <- arr01) {
println(i)
}
# 变长数组与定长数组相互转换
arr03 = arr01.toBuffer // 将定长数组转换为变长数组
arr04 = arr02.toArray // 将变长数组转换为定长数组
注意: scala中的元组最大只有22个元素
val tuple1 = (1, 2, 3, "hello", 4) // 定义一个元组tuple
# 两种方法
tuple1._1 // 取出元组的第一个元素
tuple1.productElement(0) // 使用productElement(index)方法,取出元组的第一个元素
//遍历元组, 元组的遍历需要使用到迭代器
for (item <- t1.productIterator) {
println("item=" + item)
}
在默认情况下 List 是scala.collection.immutable.List
,即不可变,
如果要使用可变类型的,需使用: scala.collection.mutable.List
val list01 = Nil //空列表
list02 = List(1, 2, 3, "Hello") # 创建一个列表
val list03= (1 :: 2 :: 2 :: Nil) # 使用符号创建一个列表,使用时注意,尾部需要加上 `::Nil`
list02(1) // 获取list01的第二个元素
import scala.collection.mutable.ListBuffer
val lst0 = ListBuffer[Int](1, 2, 3) // 定义一个类型为Int的可变列表
val lst1 = ListBuffer[Int](4, 5)
lst0(0) // 查询下标为0的元素
lst(0) = 6 // 修改列表下标为0的元素值为6
lst.remove(2) // 删除列表下标为1的元素
# 增加元素
lst0.append(2) // 在列表尾部追加一个值
lst0 :+ 2 // 在列表尾部追加一个值,注意 : 要永远对着列表的方向
2+: lst0 // 在列表头部追加一个值
lst0 ++= lst1 // 列表lst0 与列表 lst1 进行相加
import scala.collection.mutable
val q1 = new mutable.Queue[Int] // 创建队列
# 增加元素,使用时注意下面两种写法的不同
q1 ++= List(4,5,7) // 默认值直接加在队列后面 (9,4,5,7)
q1 += List(10,0) // 表示将List(10,0) 作为一个元素加入到队列中
//dequeue 从队列的头部取出元素 q1本身会变
val queueElement = q1.dequeue()
println("queueElement=" + queueElement + "q1="+q1)
//enQueue 入队列,默认是从队列的尾部加入. Redis
q1.enqueue(100,10,100,888)
println("q1=" + q1)
//1. 获取队列的第一个元素
println(q1.head) // 对q1没有任何影响
//2. 获取队列的最后一个元素
println(q1.last) // 对q1没有任何影响
//3. 取出队尾的数据 ,即:返回除了第一个以外剩余的元素,可以级联使用
println(q1.tail)
println(q1.tail.tail.tail.tail)
# 不可变map的创建
val map1 = Map("Alice" -> 10, "Bob" -> 20, "Kotlin" -> "北京")
# 可变map的创建
import scala.collection.mutable
val map1 = new scala.collection.mutable.HashMap[String, Int] // 创建一个空的map
val map2 = mutable.Map("Alice" -> 10, "Bob" -> 20, "Kotlin" -> "北京") // key-value形式创建
val map3 = mutable.Map(("Alice", 10), ("Bob", 20), ("Kotlin", "北京")) // 使用对偶元组形式创建map
map1 += "Alice" -> 10
# 方式1 map(key)
map4("Alice") // 当key 不存在时会出现 java.util.NoSuchElementException: key not found 的异常
# 方式2 使用contains方法检查是否存在key
if (map4.contains("Alice")) {
println("key存在,值=" + map4("Alice"))
} else {
println("key不存在:)")
}
# 方式3-使用map.get(key).get取值
//1. 如果key存在 map.get(key) 就会返回Some(值) ,然后Some(值).get就可以取出
//2. 如果key不存在 map.get(key) 就会返回None
map4.get("Alice").get
# 方式4-使用map4.getOrElse()取值
map4.getOrElse("Alice", "默认的值“) // 如果key存在就返回对应的value,不存在返回默认值
for ((k, v) <- map4) println(k + " is mapped to " + v)
for (v <- map6.keys) println(v)
for (v <- map6.values) println(v)
# 不可变set的创建
val set = Set(1, 2, 3) //不可变
# 可变set的创建
import scala.collection.mutable
val set2 = mutable.Set(1,2,"hello")
# 增加,两种方式
set2.add(4)
set += 4
# 删除元素,两种方式
set.remove(4) // 删除值为4的元素
set -= 4