其中
(1)arr2.toArray 返回结果才是一个不可变数组,arr2 本身没有变化
(2)arr1.toBuffer 返回结果才是一个可变数组,arr1 本身没有变化
案例实操
package chapter07
import scala.collection.mutable.ArrayBuffer
object Test02_ArrayBuffer {
def main(args: Array[String]): Unit = {
//创建一个可变数组
val arr1: ArrayBuffer[Int] = new ArrayBufferInt
val arr2 = ArrayBuffer(23,24,25)
//可变数组在转换为不可变数组
val arr = ArrayBuffer(1,2,3)
val newarr = arr.toArray
println(newarr.mkString(“-”))
println(arr)
//不可变数组转换为不可变数组
val buffer = newarr.toBuffer
println(buffer)
}
}
多维数组
多维数组定义
val arr = Array.ofDimDouble
说明:二维数组中有三个一维数组,每个一维数组中有四个元素
案例实操
package chapter07
object Test03_MulArray {
def main(args: Array[String]): Unit = {
//创建多维数组
val array = Array.ofDim[Int](2, 3) //2行3列
//访问元素
array(0)(2) = 12 //赋值
array(1)(0) = 13
//输出
println(array.mkString(“,”))
for (i <- 0 until array.length; j <- 0 until array(i).length)
println(array(i)(j))
//换行输出
for (i <- array.indices; j <- array(i).indices) {
print(array(i)(j) + “\t”)
if (j == (array(i).length - 1))
println()
}
array.foreach(line => line.foreach(println))
//简写
array.foreach(_.foreach(println))
}
}
列表 List
不可变 List
基本介绍
1)说明
(1)List 默认为不可变集合
(2)创建一个 List(数据有顺序,可重复)
(3)遍历 List
(4)List 增加数据
(5)集合间合并:将一个整体拆成一个一个的个体,称为扁平化
(6)取指定数据
(7)空集合 Nil
案例实操
package chapter07
object Test04_List {
def main(args: Array[String]): Unit = {
//创建一个list
val list1 = List(1,2,3,4)
// println(list1.indices)
println(list1.mkString(“-”))
//访问list元素
println(list1(1))
// list1(1) = 12 //error不能赋值
list1.foreach(println)
//添加元素
val list2 = list1 :+ 10
val list3 = 10 +: list1
println(list1)
println(list2)
println(list3)
// ::方法, 常用来创建一个新的list
val list4 = list1.::(521)
println(list4)
val list5 = Nil.::(12)
println(list5)
val list6 = 32 :: Nil
println(list6)
val list7 = 12 :: 13 :: 14 :: Nil
println(list7)
//合并list
val list8 = list7 :: list6 //不可以
println(list8)
val list9 = list7 ::: list6
println(list9)
val list10 = list7 ++ list6
println(list10)
}
}
可变 ListBuffer
基本介绍
1)说明
(1)创建一个可变集合 ListBuffer
(2)向集合中添加数据
(3)删除元素
(4)合并元素
(5)修改元素
(6)打印集合数据
案例实操
package chapter07
import scala.collection.mutable.ListBuffer
object Test05_ListBuffer {
def main(args: Array[String]): Unit = {
//创建可变列表
val list1 = new ListBufferInt
val list2 = ListBuffer(1,2,3) //伴生对象创建
println(list1)
println(list2)
//添加元素
list1.append(1,2)
println(list1)
list2.prepend(0)
println(list2)
list1 += 4 += 5
-1 +=: list1
println(list1)
//合并list
val list3 = list1 ++ list2
println(list1)
println(list2)
println(list3) //合并后
list1 ++= list2
println(list1) //合并后
println(list2)
//修改元素
list2(3) = 30
println(list2)
//删除元素
list2.remove(2)
println(list2)
//指定元素删除
list2 -= 30
println(list2)
//打印集合数据
buffer.foreach(println)
}
}
Set 集合
默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用
scala.collection.mutable.Set 包
不可变 Set
基本介绍
1)说明
(1)Set默认是不可变集合,数据无序
(2)数据不可重复
(3)遍历集合
(4)添加元素
(5)删除元素
(6)合并Set
案例实操
package chapter07
object Test06_ImmutableSet {
def main(args: Array[String]): Unit = {
//创建set
val set1 = Set(1,2,3,5,7,8,7,7,7)
println(set1) //自动去除重复的
//遍历集合
for(x<-set1){
println(x)
}
//添加元素
val set2 = set1.+(19)
val set3 = set1 + 20 //等于上面
println(set1)
println(set2)
println(set3)
//合并set
val set4 = Set(11,12,13,14)
var set5 = Set(15, 16, 17, 18)
set5 ++= set4
val set6 = set4 ++ set5
println(set6)
println(set5)
//删除元素
val set7 = set6 -13
println(set6)
println(set7)
}
}
可变集合
基本介绍
1)说明
(1)创建可变集合 mutable.Set
(2)打印集合
(3)集合添加元素
(4)向集合中添加元素,返回一个新的 Set
(5)删除数据
案例实操
package chapter07
import scala.collection.mutable
object Test07_MutableSet {
def main(args: Array[String]): Unit = {
//创建set
val set1 = mutable.Set(1,2,3,4,5)
println(set1)
//添加元素
set1 + 11
println(set1) //set1不改
val set2 = set1 + 1
println(set2)
set1 += 11
println(set1) //set1改了
set1.add(12)
println(set1) //推荐这种添加元素的方法(原集合有的话,不添加)
//删除元素
set1 -= 11
println(set1)
//合并两个set
val set3 = mutable.Set(12,22,32,42,52)
println(set1)
set1 ++ set3
println(set1)
println(set3)
val set4 = set1 ++ set3
println(set4)
}
}
Map 集合
Scala 中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value)映射。
不可变 Map
基本介绍
1)说明
(1)创建不可变集合 Map
(2)遍历元素
(3)访问数据
(4)如果 key不存在,返回 0
案例实操
package chapter07
object Test08_ImmutableMap {
def main(args: Array[String]): Unit = {
//创建map
val map1 : Map[String, Int]= Map(“a” -> 12, “b”-> 13,“hello” -> 14)
println(map1)
println(map1.getClass)
//遍历元素
map1.foreach(println)
//等同于下面
map1.foreach((kv:(String,Int)) => println(kv))
//去map中所有的key或者value
for (key <- map1.keys){
println(s"$key —> ${map1.get(key)}")
}
//访问某一个key的value
println(map1.get(“a”).get)
// println(map1.get(“”).get) //异常java.util.NoSuchElementException: None.get
println(map1.get(“c”)) //没有c 输出none
//上面方法容易抛异常,用下面的即使没有也不会抛异常
println("a: " + map1.getOrElse(“a”,0))
println("c: " + map1.getOrElse(“c”,0)) //后面的0是没有对应的数时的返回值
//或者直接下面可以获取value,没有的话,还是会抛异常
println(map1(“a”))
// println(map1(“c”)) java.util.NoSuchElementException: key not found: c
}
}
可变 Map
基本结束
1)说明
(1)创建可变集合map
(2)打印集合
(3)增加数据
(4)删除数据
(5)修改数据
案例实操
package chapter07
import scala.collection.mutable
object Test09_MutableMap {
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
读者福利
更多笔记分享
on: key not found: c
}
}
可变 Map
基本结束
1)说明
(1)创建可变集合map
(2)打印集合
(3)增加数据
(4)删除数据
(5)修改数据
案例实操
package chapter07
import scala.collection.mutable
object Test09_MutableMap {
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。 [外链图片转存中…(img-IwzMExhq-1711080362745)] [外链图片转存中…(img-M6r8tmzL-1711080362746)] [外链图片转存中…(img-0jrQcWCo-1711080362746)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java) [外链图片转存中…(img-18om2tNL-1711080362747)]
读者福利
[外链图片转存中…(img-uz0TyWv9-1711080362747)]
更多笔记分享
[外链图片转存中…(img-KScFDq23-1711080362748)]
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录
参考文章
发表评论