Array 和 ArrayBuffer 相互转换 | 学习笔记

简介: 快速学习 Array 和 ArrayBuffer 相互转换

开发者学堂课程【Scala 核心编程 - 进阶Array 和 ArrayBuffer 相互转换学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9026


Array 和 ArrayBuffer 相互转换


内容介绍:

一、变长数组分析小结

二、定长数组与变长数组的转换


一、变长数组分析小结

1) ArrayBuffer 是变长数组,类似 java 的 ArrayList

2 ) val arr2 = ArrayBuffer[lnt]()也是使用的 apply 方法构建对象

3)def append(elems: A*) { appendAll(elems)}接收的是可变参数.

4)每 append 一次,arr 在底层会重新分配空间,进行扩容,arr2的内存地址会发生变化,也就成为新的 ArrayBuffer


二、定长数组与变长数组的转换

1.说明

在开发中,我们可能使用对定长数组和变长数组,进行转换

arr1.toBuffer//定长数组转可变数组

arr2.toArray //可变数组转定长数组

2.注意事项

1) arr2.toArray 返回结果才是一个定长数组,arr2本身没有变化

2) arr1.toBuffer 返回结果才是一个可变数组,arr1本身没有变化

3.代码演示

import scala.collection.mutable.ArrayBuffer

object Array22ArrayBuffer {

def main( args : Array[string]): unit = {

val arr2 = ArrayBuffer[Intl]()

//追加值

arr2.append(1,2,3)

println( arr2)

//1.arr2.toArray 调用 arr2的方法 toArray

//2.将 ArrayBuffer ---> Array

//3.arr2本身没有任何变化

val newArr = arr2.toArray;

println( newArr)

//1. newArr.toBuffer 是把 Array->ArrayBuffer

//2.底层的实现

/*override def toBuffer[A1 >: A]: mutable.Buffer[Al] = {val result = new mutable.ArrayBuffer[A1](size)

copyToBuffer( result)

result

*/

//3. newArr本身没变化

val newArr2 = newArr.toBuffer

newArr2.append ( 123)

println( newArr2)

//案例演示+说明

4.运行结果

D : \program\jdk8\bin\java ..ArrayBuffer(1,2,3)

[I@34ce8af7

ArrayBuffer(1,2,3,123)

Process finished with exit code 0

假如在开发中,原先为了效率比较高,弄了一个 array,但是根据一个需求,需要把里面的东西移植到 Arreybuffer 里面去进行动态的修改,但是可能是临时做一下,临时做完之后还要回到 Arrey 继续工作,这个时候就可以用 Arreybuffer。

相关文章
|
26天前
|
Python
Numpy学习笔记(一):array()、range()、arange()用法
这篇文章是关于NumPy库中array()、range()和arange()函数的用法和区别的介绍。
40 6
Numpy学习笔记(一):array()、range()、arange()用法
|
开发者 索引 Python
Array 数组|学习笔记
快速学习 Array 数组
125 0
Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
|
JSON Java 数据格式
|
Scala C# .NET
scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
package yjmyzz import java.io.PrintWriter import java.util.Date import scala.io.Source object ScalaApp02 { def main(args: Array[Str...
1173 0
List与array的相互转换
1、List->Array 调用List的toArray方法 List list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); String[] strings = list.toArray(new String[list.size()]); 2、Array->List 调用Array的asList方法 String[] strings = {"1","2","3","4"}; List list = Arrays.asList(strings); 以上。
655 0
|
JavaScript C# 数据库管理
ruby学习笔记(6)-Array的使用
ruby的数组基本使用,跟c#中的数组比起来,最不习惯的区别在于允许负索引(跟javascript到有几分相似) arr=[3,4,5,6,7,8,9] puts arr[0] # 3 puts arr.
909 0