val arr01 = ArrayBuffer[Any](3, 2, 5)
其中
(1)[Any]存放任意数据类型
(2)(3, 2, 5)初始化好的三个元素
(3)ArrayBuffer 需要引入 scala.collection.mutable.ArrayBuffer
案例实操
(1)创建数组
(2)ArrayBuffer 是有序的集合
(3)访问以元素
(4)增加元素使用的是 append 方法(),支持可变参数
(5)删除元素
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)
println(arr1.mkString(“-”))
println(arr2.mkString(“-”))
println(arr2)
//访问元素
// println(arr1(0)) //java.lang.IndexOutOfBoundsException: 0 数组越界
println(arr2(0))
arr2(0) = 2121
println(arr2(0))
//添加元素
arr1 :+ 15
val newarr1 = arr1 :+ 15
println(arr1 == newarr1)
println(newarr1.mkString(“-”))
val newarr2 = arr1 += 19
arr1 += 19 //可变数组采用这种方式在后面添加元素
println(arr1)
println(arr1 == newarr2)
20 +=: arr1 //可变数组采用这种方式在前面添加元素
println(arr1)
//可变数组推荐下面的方法
arr1.append(12,13) //在后面添加
println(arr1)
arr1.prepend(11,12) //在前面添加
println(arr1)
arr1.insert(1,121,211) //任意位置添加
println(arr1)
arr1.appendAll(newarr1) //在后面添加一个数组
println(arr1)
arr1.prependAll(newarr1) //在前面面添加一个数组
println(arr1)
arr1.insertAll(1, newarr1) //任意位置添加一个数组
println(arr1)
//删除元素
arr1.remove(4)
println(arr1)
arr1.remove(2,3) //第二个开始,删除3个
println(arr1)
arr1 -= 19 //删除19,多个的话,就删除一个
println(arr1)
}
}
不可变数组与可变数组的转换
基本介绍
arr1.toBuffer //不可变数组转可变数组
arr2.toArray //可变数组转不可变数组
其中
(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)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
面试题总结
其它面试题(springboot、mybatis、并发、java中高级面试总结等)
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取! 数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-esy8T3xa-1712664871780)]
[外链图片转存中…(img-EIWgNCNe-1712664871781)]
[外链图片转存中…(img-igB7ILTa-1712664871781)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
面试题总结
其它面试题(springboot、mybatis、并发、java中高级面试总结等)
[外链图片转存中…(img-kFe3pDJw-1712664871782)]
[外链图片转存中…(img-m15F0to1-1712664871782)]
[外链图片转存中…(img-D8UBBFQr-1712664871782)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
好文推荐
发表评论