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的更多相关文章

  1. scala (4) 可变数组和不可变数组

    在scala中数组分为不可变长数组(在immutable包下)和可变长数组(在mutable包下) 不可变长数组指的是长度不可变,但是数组中角标对应的元素的值是可变的 可变数组指的是长度和数组中角标对 ...

  2. Scala学习——数组/映射/元组

    [<快学Scala>笔记] 数组 / 映射 / 元组 一.数组 1.定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初 ...

  3. 《快学Scala》——数组、映射和元组

    数组 定长数组:在Scala中可以用Array,初始化一个定长数组.例如: val nums = new Array[Int](10) //10个整数的数组,所有元素初始化为0 val a = new ...

  4. Scala学习之路 (四)Scala的数组、映射、元组、集合

    一.数组 1.定长数组和变长数组 import scala.collection.mutable.ArrayBuffer object TestScala { def main(args: Array ...

  5. Scala 可变长参数

    Scala 允许你指明函数的最后一个参数可以是重复的.这可以允许客户向函数传入可变长度参数列表.想要标注一个重复参数,在参数的类型之后放一个星号. 例如:定义一个可变参数的函数param def pa ...

  6. Java可变参数 & Python可变参数 & Scala可变参数

    Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...

  7. scala 可变集合与内存清理的关系

    留坑待填 使用scala.collection.mutable._期间,发现了当程序运行内存开销较多时,使用系统工具进行内存清理,然后程序报出了变量找不到.内存无法访问.数组访问越界,堆栈溢出等多种错 ...

  8. 可变数组NSMutableArray

    //创建一个空的可变数组 NSMutableArray *array = [NSMutableArray array]; //向数组里面添加对象 [array addObject:@"< ...

  9. Objective - C NSArray不可变数组和NSMutableArray可变数组

    OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见 ...

  10. NSArray与NSMutableArray 数组与可变数组

    1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...

随机推荐

  1. C++ std::move 的一些问题

    看 SO 上有一个比较奇怪的问题, When does an rvalue reference result in a move vs copy constructor and why? 问题代码: ...

  2. Docker实践之05-限制Docker容器运行资源

    Docker容器在默认情况下会使用宿主机的所有CPU和内存资源,为了明确限制每一个Docker容器的运行资源,需按如下操作进行设置. 首先,执行:sudo docker info,如果提示:" ...

  3. 记录一个错误:Unable to find a match: python-dev

    今天尝试在Linux下运行一个Python项目,在安装requirements.txt时报错 执行命令如下: [root@VM-16-8-centos cve-search]# pip3 instal ...

  4. 数仓的等待视图中,为什么会有Hashjoin-nestloop

    本文分享自华为云社区<GaussDB(DWS)等待视图之Hashjoin-nestloop>,作者:Arrow0lf. 1. 业务场景 众所周知,GaussDB(DWS)中有3种常见的jo ...

  5. 教程|在矩池云使用 Stable Diffusion web UI v1.5 模型和 ControlNet 插件

    今天给大家介绍下如何在矩池云使用 Stable Diffusion web UI v1.5 模型和 Stable Diffusion ControlNet 插件. 租用机器 租用机器需要选择内存大于8 ...

  6. ECharts渐变温度直方图

    ECharts渐变直方图,根据具体的值调整色带,使所有颜色看起来协调一致. 直接在series数组中的对象中添加如下代码即可: itemStyle: { color: function (params ...

  7. 【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集

    问题描述 写代码的过程中,时常遇见要通过代码请求其他HTTP,HTTPS的情况,以下是收集各种语言的请求发送,需要使用的代码或命令 一:PowerShell Invoke-WebRequest htt ...

  8. 初识JavaScript逆向——以网易云音乐和招标网站为例

    前言:需要掌握一定的JavaScript基础,能看懂基础的JavaScript代码. 我们平常在浏览网站的时候会看到许多加密的参数,如果需要知道它的原始数据,就需要知道整个加密过程,所以本篇文章就来介 ...

  9. 小程序开发:app.vue检测更新时判断是否是朋友圈进入

    因为如果从朋友圈点进小程序来的,有些功能就用不了,所以需要判断下是否从朋友圈点进来的. 检查代码如下: checkScene() { // 判断场景值 如果是从分享到朋友圈再打开 就会有一些功能无法使 ...

  10. ElasticSearch基础介绍(1)

    ## 1. Elasticsearch基本介绍 官网:https://www.elastic.co/cn Elasticsearch(简称ES)是一个基于Apache Lucene(TM)的开源搜索引 ...