第一章.集合
1.不可变数组的创建
package com.atguigu.chapter07
object $01_ImmutableArray {
def main(args:Array[String]):Unit={
val arr = new Array[Int](5)
println(arr.toList)
val arr2 = Array[Int](10,2,3,6,5)
println(arr2.toList)
val arr3 = arr2.:+(20)
println(arr2.toList)
println(arr3.toList)
println(arr2.eq(arr3))
val arr5 = arr2.++(Array(100, 300, 200))
println(arr5.toList)
println(arr2.toList)
val arr6 = arr2.++:(Array(500, 700, 200))
println(arr6.toList)
println(arr6(0))
arr6(0) = 1000
println(arr6.toList)
for (elem <- arr6) {
println(elem)
}
val arr7 = arr6.toBuffer
println(arr7)
}
}
2.可变数组的创建
package com.atguigu.chapter07
import scala.collection.mutable.ArrayBuffer
object $02_MutableArray {
def main(args: Array[String]): Unit = {
val arr = new ArrayBuffer[Int]()
println(arr)
val arr2 = ArrayBuffer[Int](10, 2, 5, 3, 7, 9)
println(arr2)
val arr3 = arr2.+:(20)
println(arr2)
println(arr3)
val arr4 = arr2.:+(30)
println(arr4)
arr2.+=(40)
println(arr2)
arr2.+=:(50)
println(arr2)
val arr5 = arr2.++(Array(100, 200, 300))
println(arr5)
println(arr2)
val arr6 = arr2.++:(Array(400, 500, 600))
println(arr6)
arr2.++=(Array(100,250,305,305))
println(arr2)
arr2.++=:(Array(505,605,705))
println(arr2)
val arr7 = arr2.-(305)
println(arr2)
println(arr7)
arr2.-=(305)
println(arr2)
arr2.--=(Array(605,50,10,2))
println(arr2)
println(arr2(0))
arr2(0)=1000
println(arr2)
for (elem <- arr2) {
println(s"elem=${elem}")
}
val arr10 = arr2.toArray
println(arr10.toList)
val arr11 = Array.ofDim[Int](3, 4)
println(arr11.size)
println(arr11(0).size)
}
}
3.不可变List创建
package com.atguigu.chapter07
object $03_ImmutableList {
def main(args: Array[String]): Unit = {
val list1 = List[Int](1, 4, 3, 2, 7, 9)
println(list1)
val list2 = 1 :: 2::3::6::Nil
println(list2)
var list3:List[Int]=Nil
println(list3)
val list4 = list2.:+(10)
println(list4)
val list5 = list2.+:(20)
println(list5)
val list6 = list2.::(30)
println(list6)
val list7 = list2.++(Array(100, 300, 200))
println(list7)
val list8 = list2.++:(List(100, 300, 200))
println(list8)
val list9 = list2.:::(List(5050, 405))
println(list9)
println(list9(0))
val list10 = list9.updated(0, 1000)
println(list10)
}
}
4.可变List创建
package com.atguigu.chapter07
import scala.collection.mutable.ListBuffer
object $04_MutableList {
def main(args: Array[String]): Unit = {
val list1 = ListBuffer[Int](1,4,2,7,9)
println(list1)
val list2 = new ListBuffer[Int]()
println(list2)
val list3 = list1.+:(10)
println(list3)
val list4 = list1.:+(20)
println(list4)
list1.+=(40)
println(list1)
list1.+=:(50)
println(list1)
list1.insert(1,10,20,30)
println(list1)
list1.remove(1,3)
println(list1)
val list5 = list1.-(50)
println(list5)
list1.-=(50)
println(list1)
val list6 = list1.--(List(1,2,7))
println(list6)
println(list1)
list1.--=(List(1,2,7))
println(list1)
println(list1(0))
list1(0)=100
println(list1)
list1.update(1,90)
println(list1)
val list11 = list1.updated(2,4)
println(list1)
println(list11)
}
}
5.不可变set创建
package com.atguigu.chapter07
object $05_ImmutableSet {
def main(args: Array[String]): Unit = {
val set1= Set[Int](1,2,5,3,1,9,10)
println(set1)
val set2 = set1.+(20)
println(set2)
val set3 = set1.++(List(100,300,200,700))
val set4 = set1.++(List(100,300,200,700))
println(set3)
println(set4)
var set10 = Set[Int](1,3,5,7,9)
val set11 = set10
println("-------------------------------")
set10.+=(20)
set10=set10.+(20)
println(set10)
println(set11.eq(set10))
val set5 = set1.-(10)
println(set5)
val set6 = set1.--(List(2,3,5))
println(set6)
}
}
6.可变set的创建
package com.atguigu.chapter07
import scala.collection.mutable
object $06_MutableSet {
def main(args: Array[String]): Unit = {
val set1 = mutable.Set[Int](10,20,30,40)
val set2 = set1.+(50)
println(set2)
set1.+=(60)
println(set1)
val set3 = set1.++(List(70,100,300,80))
println(set3)
val set4 = set1.++:(List(70,100,300,80))
println(set4)
set1.++=(List(500,700,200,300))
println(set1)
val set6 = set1.-(60)
println(set6)
set1.-=(700)
println(set1)
set1.--=(List(500,200,300))
println(set1)
set1.update(500,true)
println(set1)
set1.update(60,false)
println(set1)
}
}
7.元组
package com.atguigu.chapter07
object $07_Tuple {
class Region(val name:String,val school:School)
class School(val name:String,val student:Student)
class Student(val name:String,val age:Int)
def main(args: Array[String]): Unit = {
val t1 = ("zhangsan",20,"shenzhen")
val t2 = "lisi" -> 20
println(t1)
println(t2)
println(t1._1)
println(t1._2)
println(t1._3)
println("---------------------------")
val list = List("1 zhangsan 20 shenzhen","2 lisi 30 beijing","3 wangwu 40 tianjin")
val list2 = for(element<-list) yield {
val arr = element.split(" ")
(arr(0),arr(1),arr(2),arr(3))
}
println(list2)
val list3 = List(
new Region("宝安区1",new School("宝安中学1",new Student("张三1",21))),
new Region("宝安区2",new School("宝安中学2",new Student("张三2",22))),
new Region("宝安区3",new School("宝安中学3",new Student("张三3",23))),
new Region("宝安区4",new School("宝安中学4",new Student("张三4",24)))
)
val list4 = for (elem <- list3) yield{
(elem.name,(elem.school.name,(elem.school.student.name,elem.school.student.age)))
}
for (elem <- list4) {
println(elem._2._2._1)
}
}
}
8.不可变map的创建
package com.atguigu.chapter07
object $08_ImmutableMap {
def main(args: Array[String]): Unit = {
val map = Map[String,Int]("zhangsan"->20,("lisi",30),"wangwu"->22)
println(map)
val map2 = map.+("aa" -> 20)
println(map2)
val map3 = map.++(List("cc"->30,"ac"->40,"dc"->50))
println(map3)
val map4 = map.++:(List("cc"->30,"ac"->40,"dc"->50))
println(map4)
val map5 = map.-("lisi")
println(map5)
val map6 = map4.--(List("dc","cc","ac"))
println(map6)
val map7 = map.+("zhangsan"->200)
println(map7)
val map8 = map.updated("lisi",1000)
println(map8)
println(map.get("lisi").get)
println(map.getOrElse("lisi_1", -1))
println(map.keySet)
println(map.values)
for (elem <- map) {
println(elem)
}
}
}
9.可变map的创建
package com.atguigu.chapter07
import scala.collection.mutable
object $09_MutableMap {
def main(args: Array[String]): Unit = {
val map = mutable.Map[String, Int]("aa" -> 10, "cc" -> 20, "dd" -> 30, "ac" -> 40)
println(map)
val map2 = map.+("tt"->60)
println(map2)
map.+=("pp"->70)
println(map)
val map3 = map.++(List("cd"->100,"ce"->200,"fc"->300))
println(map3)
val map4 = map.++:(List("cd"->100,"ce"->200,"fc"->300))
println(map4)
map.++=(List("yy"->20,"oo"->30))
println(map)
map.put("hello",30)
println(map)
val map5 = map.-("hello")
println(map5)
map.-=("oo")
println(map)
val map6 = map.--(List("yy","dd","hello"))
println(map6)
map.--=(List("pp","cc","hello"))
println(map)
map.remove("yy")
println(map)
println(map.getOrElse("dd", -1))
println(map.keys)
println(map.values)
map("dc")=300
println(map)
map.update("pp",100)
println(map)
}
}
10.不可变队列的创建
package com.atguigu.chapter07
import scala.collection.immutable.Queue
object $10_ImmutableQuene {
def main(args: Array[String]): Unit = {
val queue = Queue[Int](10,3,2,6,8,9)
println(queue)
val queue2 = queue.+:(20)
println(queue2)
val queue3 = queue.:+(20)
println(queue3)
val queue4 = queue.++(List(100,200,400,300))
println(queue4)
val queue5 = queue.++:(List(100,200,400,300))
println(queue5)
val queue6 = queue.enqueue(50)
println(queue6)
val queue7 = queue.dequeue
println(queue7)
println(queue(0))
val queue10 = queue.updated(1,100)
println(queue10)
}
}
11.可变队列的创建
package com.atguigu.chapter07
import scala.collection.mutable
object $11_MutableQueue {
def main(args: Array[String]): Unit = {
val q1 = mutable.Queue[Int](10,3,2,7,9,4)
val q2 = q1.:+(30)
println(q2)
val q3 = q1.+:(40)
println(q3)
q1.+=(50)
println(q1)
q1.+=:(60)
println(q1)
val q4 = q1.++(List(100,300,200))
println(q4)
val q6 = q1.++:(List(400,500,600))
println(q6)
q1.++=(List(1000,40000))
println(q1)
q1.enqueue(300)
println(q1)
q1.dequeue()
println(q1)
q1.dequeueAll(x=>x%2==0)
println(q1)
println(q1(0))
q1(0)=300
println(q1)
}
}