Scala 可变数组ArrayBuffer
1 package chapter07
2
3 import scala.collection.mutable
4 import scala.collection.mutable.ArrayBuffer
5
6 object Test02_ArrayBuffer {
7 def main(args: Array[String]): Unit = {
8 // 1. 创建可变数组
9 val arr1: ArrayBuffer[Int] = new ArrayBuffer[Int]()
10 val arr2 = ArrayBuffer(23, 57, 92)
11
12 println(arr1)
13 println(arr2)
14
15 // 2. 访问元素
16 // println(arr1(0)) // error
17 println(arr2(1))
18 arr2(1) = 39
19 println(arr2(1))
20
21 println("======================")
22 // 3. 添加元素
23 val newArr1 = arr1 :+ 15 //new一个新的数组进行赋值 不指向同一块地址
24 println(arr1)
25 println(newArr1)
26 println(arr1 == newArr1)
27 //可变数组ArrayBuffer 向前追加+=: 向后追加+=
28 val newArr2 = arr1 += 19 //引用 对于可变数组 不推荐把操作后的数值的引用赋值给新的数组
29 println(arr1)
30 println(newArr2)
31 println(arr1 == newArr2)
32 newArr2 += 13
33 println(arr1)
34
35 77 +=: arr1
36 println(arr1)
37 println(newArr2)
38 //append
39 arr1.append(36)
40 arr1.prepend(11, 76)
41 arr1.insert(1, 13, 59) //(位置,*多个数值)
42 println(arr1)
43
44 arr1.insertAll(2, newArr1)
45 arr1.prependAll(newArr2)
46
47 println(arr1)
48
49 // 4. 删除元素 remove
50 arr1.remove(3)
51 println(arr1)
52
53 arr1.remove(0, 10)
54 println(arr1)
55
56 arr1 -= 13
57 println(arr1)
58
59 // 5. 可变数组转换为不可变数组
60 val arr: ArrayBuffer[Int] = ArrayBuffer(23, 56, 98)
61 val newArr: Array[Int] = arr.toArray
62 println(newArr.mkString(", "))
63 println(arr)
64
65 // 6. 不可变数组转换为可变数组
66 val buffer: mutable.Buffer[Int] = newArr.toBuffer
67 println(buffer)
68 println(newArr)
69 }
70 }
Scala 可变数组ArrayBuffer的更多相关文章
- scala (4) 可变数组和不可变数组
在scala中数组分为不可变长数组(在immutable包下)和可变长数组(在mutable包下) 不可变长数组指的是长度不可变,但是数组中角标对应的元素的值是可变的 可变数组指的是长度和数组中角标对 ...
- Scala学习——数组/映射/元组
[<快学Scala>笔记] 数组 / 映射 / 元组 一.数组 1.定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初 ...
- 《快学Scala》——数组、映射和元组
数组 定长数组:在Scala中可以用Array,初始化一个定长数组.例如: val nums = new Array[Int](10) //10个整数的数组,所有元素初始化为0 val a = new ...
- Scala学习之路 (四)Scala的数组、映射、元组、集合
一.数组 1.定长数组和变长数组 import scala.collection.mutable.ArrayBuffer object TestScala { def main(args: Array ...
- Scala 可变长参数
Scala 允许你指明函数的最后一个参数可以是重复的.这可以允许客户向函数传入可变长度参数列表.想要标注一个重复参数,在参数的类型之后放一个星号. 例如:定义一个可变参数的函数param def pa ...
- Java可变参数 & Python可变参数 & Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
- scala 可变集合与内存清理的关系
留坑待填 使用scala.collection.mutable._期间,发现了当程序运行内存开销较多时,使用系统工具进行内存清理,然后程序报出了变量找不到.内存无法访问.数组访问越界,堆栈溢出等多种错 ...
- 可变数组NSMutableArray
//创建一个空的可变数组 NSMutableArray *array = [NSMutableArray array]; //向数组里面添加对象 [array addObject:@"< ...
- Objective - C NSArray不可变数组和NSMutableArray可变数组
OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见 ...
- NSArray与NSMutableArray 数组与可变数组
1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...
随机推荐
- JVM之直接内存与非直接内存
直接内存 直接内存:概指系统内存,而非堆内存,不指定大小时它的大小默认与堆的最大值-Xmx参数值一致. 非直接内存: 也可以称之为堆内存,运行JVM都会预先分配一定内存,我们把JVM管理的这些内存称为 ...
- C++ 使用 UTF8 BOM 替换 UTF8 文件
void Utf8ToUtf8Bom(const wchar_t* filename) { std::ifstream infile; std::string strline; std::string ...
- 【libGDX】Mesh立方体贴图(6张图)
1 前言 本文通过一个立方体贴图的例子,讲解三维纹理贴图的应用,案例中使用 6 张不同的图片给立方体贴图,图片如下. 读者如果对 libGDX 不太熟悉,请回顾以下内容. 使用Mesh绘制三角 ...
- day01---操作系统安装环境准备
虚拟机安装操作系统步骤 1.新建虚拟主机 2.选择自定义 3.稍后安装操作系统 4.操作系统选择linux 5.选择存放位置 6.cpu和核数选择,默认即可 7.内存分配 8.网络选择 9.控制器类型 ...
- 03-Redis系列之-高级用法详解
慢查询 生命周期 我们配置一个时间,如果查询时间超过了我们设置的时间,我们就认为这是一个慢查询. 慢查询发生在第三阶段 客户端超时不一定慢查询,但慢查询是客户端超时的一个可能因素 两个配置 slowl ...
- 02、etcd单机部署和集群部署
上一章我们认识了etcd,简单的介绍了 etcd 的基础概念,但是理解起来还是比较抽象的.这一章我们就一起来部署下 etcd .这样可以让我们对 etcd 有更加确切的认识. 1.etcd单实例部署 ...
- [Azure Developer]把Azure Function中ILogger对象静态化为静态方法提供日志记录
问题描述 在Azure Function代码中,有默认的ILogger对象来记录函数的日志,如果函数引用了一些静态对象,是否有办法使用这个默认的ILogger对象来记录日志呢? using Syste ...
- Java 异常处理(1) : try-catch- finally中finally的使用
1 package com.bytezero.throwable; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 impor ...
- vue3自定义Hooks
比较简单的小demo,直接上代码吧 ts使用defineComponent,setup()里面使用 Composition API 写法,逻辑块清晰,不用前后文查找,拒绝 spaghetti code ...
- stm32读写sd卡代码解析和调试总结
一 前言 做程序员真是来不得半点偷懒,假如你对经常使用的代码不熟悉,早晚会让你付出沉重的代价.像认识自己的灵魂一样认识每行用到的代码,这才是一个合格的程序员,才不至于在出现问题的时候出现慌乱. ...