集合
1.集合基本常用方法
object Scala_Collection {
def main(args: Array[String]): Unit = {
//集合常用的方法
val buffer = ArrayBuffer(1,2,3,4)
//长度
println(buffer.length)//length=size
//反转
println(buffer.reverse)
//取一部分数据(取前三条)
println(buffer.take(3))
//获取数据后三条
println(buffer.takeRight(3))
//删除数据
println(buffer.drop(1))
println(buffer.dropRight(1))
//头
println(buffer.head)
//尾巴
println(buffer.tail)//集合中都是非头是尾(2,3,4)
//最后一个
println(buffer.last)
println(buffer.init)
}
}
2.不同类型的集合
2.1不可变List
object ListTest {
def main(args: Array[String]): Unit = {
val list = List(1, 2, 3, 4, 5)
//todo 1.在数组的后面添加一个数,产生新集合
val list1: List[Int] = list :+ 5
//todo 2.空集合
Nil//List()
//todo 3 :: 相当于从右往左添加元素
val list3: List[Int] = 1 :: 2 :: 3 :: Nil
//:::相当于添加元素,使用元素拆解开,添加入空集合
val list4=1::2::3::list1:::Nil
println(list4)
}
}
2.2 可变集合
//todo 集合-Seq(List) 可变
val list: ListBuffer[Int] = ListBuffer(1, 2, 3, 4)
list.update(3,6)//ListBuffer(1, 2, 3, 6)
list.append(5)//ListBuffer(1, 2, 3, 6,5)//remove
println(list)
3.无序且不可能重复集合set
3.1 不可变set
val set = Set(1, 2, 2, 3, 3, 4, 5)
val set1: Set[Int] = set + 7//添加新元素形成新集合
val set2: Set[Int] = set - 5//减少元素
println(set2)
3.2 可变Set
val set = Set(1, 2, 2, 3, 3, 4, 5)
val set1: Set[Int] = set + 7//添加新元素形成新集合
val set2: Set[Int] = set - 5//减少元素
//可变set集合是使用包名进行区分
val set3: mutable.Set[Int] = mutable.Set(1, 2, 3, 4, 5, 6, 7)
//更新集合本身,重点是后面的false
set3.update(8,false)
println(set3)
4.Map存储无序的K-V
默认也是不可变的Map
val map = Map(
("a",1),("b",2),("c",3),
("a",4),("e",5),("c",5)
)
println(map)
//scala中方法用于创建关联关系,形成键值对->
val map1 = mutable.Map("a"->1,"b"->2)
println(map1)
5.Option
def main(args: Array[String]): Unit = {
val map1 = Map(
("a",1),("b",2),("c",3),
("a",4),("e",5),("c",5)
)
val option: Option[Int] = map1.get("a")
//option选项,称为有值跟无值
//Some:有值,None:无值
//空指针异常
println(option)
val option1: Option[Int] = map1.get("f")
println(option1)
// option1.get,知道没值但是还是取值会报错
// map1.get("d").getOrElse(0)
println(map1.getOrElse("e", 0))
}