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)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: