其中

(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面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。