Scala 中的 Array 数组 详解
Scala 中的 Array 数组 详解
- 1. 一维数组的声明与遍历
- 2. 二维数组的声明与遍历
- 3. 可变长度数组 ArrayBuffer
- 4、数组其余方法详解
Scala 语言中提供的数组是用来存储固定大小的同类型元素,
1. 一维数组的声明与遍历
使用以下方式声明数组。
val arr = Array[String]("hello","world")或者val arr1 = new Array[Int](5)
使用for循环进行遍历或者foreach方法
for (ele<-arr){println(ele)
}
或者
arr1.foreach(println)
测试如下图:
2. 二维数组的声明与遍历
创建二维数组
val arr2 = new Array[Array[Int]](3)
对二维数组进行赋值
arr2(0) = Array[Int](4, 5, 6)arr2(1) = Array[Int](4, 5, 6)arr2(2) = Array[Int](4, 5, 6)
使用双重for循环进行遍历输出
for (array <- arr2) {for (ele <- array) {println(ele)}}
测试如下图所示:
3. 可变长度数组 ArrayBuffer
使用ArrayBuffer之前要导入相对应的包:
import scala.collection.mutable.ArrayBuffer
创建数组并且对数组进行遍历
val arr = ArrayBuffer[Int](elems = 1, 6, 8)arr.+=(4) //添加到末尾arr.+=:(100) //添加到头部arr.append(45, 56, 95)arr.foreach(println)
测试效果如下图所示
4、数组其余方法详解
序号 | 方法 | 详解 |
---|---|---|
1 | def apply( x: T, xs: T* ): Array[T] | 创建指定对象 T 的数组, T 的值可以是 Unit, Double, Float, Long, Int, Char, Short, Byte, Boolean。 |
2 | def concat[T]( xss: Array[T]* ): Array[T] | 合并数组 |
3 | def copy( src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int ): Unit | 复制一个数组到另一个数组上。相等于 Java’s System.arraycopy(src, srcPos, dest, destPos, length)。 |
4 | def empty[T]: Array[T] | 返回长度为 0 的数组 |
5 | def iterate[T]( start: T, len: Int )( f: (T) => T ): Array[T] | 返回指定长度数组,每个数组元素为指定函数的返回值。以上实例数组初始值为 0,长度为 3,计算函数为a=>a+1:Array.iterate(0,3)(a=>a+1) res1: Array[Int] = Array(0, 1, 2) |
6 | def fill [T] ( n: Int )(elem: => T): Array[T] | 返回数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。 |
7 | def fill[T] ( n1: Int, n2: Int )( elem: => T ): Array[Array[T]] | 返回二数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。 |
8 | def ofDim[T] ( n1: Int ): Array[T] | 创建指定长度的数组 |
9 | def ofDim[T] ( n1: Int, n2: Int ): Array[Array[T]] | 创建二维数组 |
10 | def ofDim[T] ( n1: Int, n2: Int, n3: Int ): Array[Array[Array[T]]] | 创建三维数组 |
11 | def range( start: Int, end: Int, step: Int ): Array[Int] | 创建指定区间内的数组,step 为每个元素间的步长 |
12 | def range( start: Int, end: Int ): Array[Int] | 创建指定区间内的数组 |
13 | def tabulate[T] ( n: Int )(f: (Int)=> T): Array[T] | 返回指定长度数组,每个数组元素为指定函数的返回值,默认从 0 开始。以下实例返回 3 个元素:Array.tabulate(3)(a => a + 5) res0: Array[Int] = Array(5, 6, 7) |
14 | def tabulate [T] ( n1: Int, n2: Int )( f: (Int, Int ) => T): Array[Array[T]] | 返回指定长度的二维数组,每个数组元素为指定函数的返回值,默认从 0 开始。 |
Scala 中的 Array 数组 详解相关推荐
- c语言中的字符串数组,详解C语言中的字符串数组
在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小.第二种没有字符串的大小限制. #include #incl ...
- go语言查询某个值是否在数组中_Go语言数组详解
数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.因为数组的长度是固定的,所以在Go语言中很少直接使用数组. 和数组对应的类型是 Slice(切片),Slice 是可以增 ...
- JavaScript数组结构与算法——数组详解(中)
迭代器方法 在上篇中,我们探讨了很多数组方法,接下来总结一下最后一组方法--迭代器方法.这些方法对数组的每个元素应用一个函数,可以返回一个值.一组值.或者一个新数组. 1.不生成新数组的迭代器方法 以 ...
- JavaScript 面试中常见算法问题详解
JavaScript 面试中常见算法问题详解,翻译自 https://github.com/kennymkchan/interview-questions-in-javascript.下文提到的很多问 ...
- php 文件扫描去重,PHP中的去重方法详解和文件下载
本文主要和大家分享PHP中的去重方法详解和文件下载,在php中文件导入过程中,经常会遇到重复事件,那么就需要我们去重,然后进行下载. 1.思想 先设置一个存储主键数组,和一个空数组.解析文件,然后看要 ...
- Python中的高级数据结构详解
这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...
- c++ memset 语言_C++中memset函数用法详解
本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...
- php dump函数详解,php中var_dump()函数的详解说明
本文章给大家全面的介绍一下关于php中var_dump()函数用法详解,大家可参考参考. var_dump()void var_dump ( mixed expression [, mixed exp ...
- smarty手册-smarty中foreach循环语句详解
原文地址:smarty手册-smarty中foreach循环语句详解作者:谭博 {foreach}循环也有自身属性的变量,可以通过{$smarty.foreach.name.property}访问,其 ...
最新文章
- 使用 IDEA 解决 Java8 的数据流问题,极大提升生产力!!
- 百度地图与HT for Web结合的GIS网络拓扑应用
- 忽然觉得照着技术文档一个demo一个demo的写是一个十分好的学习方式
- python源码编译 mingw_使用 MinGW 编译 C/C++ 写的 python 扩展
- 批量插入数据到mysql_批量插入数据到 MySQL的几种方式
- C语言实现魔方阵代码及解析
- python os.path.splitext()的用法_Python常用模块之os.path
- oracle按照时间点回退,【Oracle】查看事务回滚的时间
- 视频编解码器,bbv 缓冲区溢出和下溢
- Eclipse导入包的快捷键
- Mac WinToGO
- 中国高校外语慕课平台职场英语期末考试答案
- Java基础-构造函数
- 组内相关系数intraclass correlation(ICC)
- Python 批量将.xlsx文件转为.xls文件
- 图形化编程语言的设计
- random.uniform()和random.random()区别
- 你不知道的十个 JS 小技巧
- Kettle连接MySQL数据库找不到驱动问题解决
- Python语言实现龙女仆康娜酱字符飞出