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 数组 详解相关推荐

  1. c语言中的字符串数组,详解C语言中的字符串数组

    在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小.第二种没有字符串的大小限制. #include #incl ...

  2. go语言查询某个值是否在数组中_Go语言数组详解

    数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.因为数组的长度是固定的,所以在Go语言中很少直接使用数组. 和数组对应的类型是 Slice(切片),Slice 是可以增 ...

  3. JavaScript数组结构与算法——数组详解(中)

    迭代器方法 在上篇中,我们探讨了很多数组方法,接下来总结一下最后一组方法--迭代器方法.这些方法对数组的每个元素应用一个函数,可以返回一个值.一组值.或者一个新数组. 1.不生成新数组的迭代器方法 以 ...

  4. JavaScript 面试中常见算法问题详解

    JavaScript 面试中常见算法问题详解,翻译自 https://github.com/kennymkchan/interview-questions-in-javascript.下文提到的很多问 ...

  5. php 文件扫描去重,PHP中的去重方法详解和文件下载

    本文主要和大家分享PHP中的去重方法详解和文件下载,在php中文件导入过程中,经常会遇到重复事件,那么就需要我们去重,然后进行下载. 1.思想 先设置一个存储主键数组,和一个空数组.解析文件,然后看要 ...

  6. Python中的高级数据结构详解

    这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考 ...

  7. c++ memset 语言_C++中memset函数用法详解

    本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...

  8. php dump函数详解,php中var_dump()函数的详解说明

    本文章给大家全面的介绍一下关于php中var_dump()函数用法详解,大家可参考参考. var_dump()void var_dump ( mixed expression [, mixed exp ...

  9. smarty手册-smarty中foreach循环语句详解

    原文地址:smarty手册-smarty中foreach循环语句详解作者:谭博 {foreach}循环也有自身属性的变量,可以通过{$smarty.foreach.name.property}访问,其 ...

最新文章

  1. 使用 IDEA 解决 Java8 的数据流问题,极大提升生产力!!
  2. 百度地图与HT for Web结合的GIS网络拓扑应用
  3. 忽然觉得照着技术文档一个demo一个demo的写是一个十分好的学习方式
  4. python源码编译 mingw_使用 MinGW 编译 C/C++ 写的 python 扩展
  5. 批量插入数据到mysql_批量插入数据到 MySQL的几种方式
  6. C语言实现魔方阵代码及解析
  7. python os.path.splitext()的用法_Python常用模块之os.path
  8. oracle按照时间点回退,【Oracle】查看事务回滚的时间
  9. 视频编解码器,bbv 缓冲区溢出和下溢
  10. Eclipse导入包的快捷键
  11. Mac WinToGO
  12. 中国高校外语慕课平台职场英语期末考试答案
  13. Java基础-构造函数
  14. 组内相关系数intraclass correlation(ICC)
  15. Python 批量将.xlsx文件转为.xls文件
  16. 图形化编程语言的设计
  17. random.uniform()和random.random()区别
  18. 你不知道的十个 JS 小技巧
  19. Kettle连接MySQL数据库找不到驱动问题解决
  20. Python语言实现龙女仆康娜酱字符飞出

热门文章

  1. c语言简单验证哥德巴赫猜想
  2. make及makefile
  3. 软件企业测试人员的角色与职责
  4. Spring中@Primary注解
  5. FLIR获得美国陆军追加的一份价值2600万美元的核、生物和化学侦察车辆计划合同
  6. 【测试】bug的生命周期和组成部分
  7. 免疫受体 AIRR 分析平台 immuneML 简介
  8. python语句--条件语句
  9. 【信息检索导论】第三章 容错式检索
  10. 中国医科大学网络教育学院试卷计算机,中国医科大学网络教育学院试卷