Scala学习第五天:数组的基本操作,数组的进阶操作和多维数组
来源:互联网 发布:怎样用淘宝客推广 编辑:程序博客网 时间:2024/06/02 14:39
信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
1. 数组的基本操作
1)定长数组
数组的概念和C,JAVA中的数组是一样的, 都是存储同一种类型的元素。定长数组存储一定长度的数组。
//声明一个数组,类型为Int,元素个数为10.
val nums = new Array[Int](10)
//声明一个数组,类型为String元素个数为10 .
val a = new Array[String](10)
//声明一个数组,初始化第一个元素为'Hello',第二个元素为"World",通过类型推到,判断出//数组的类型为String.
val s = Array("Hello" , "World")
// 设置数组中存储的第一个元素为"Good"
s(0) = "Good"
for (elem <- s) println(elem)
打印代码,得到如下输出结果:Good
World
这里使用Scala 强大的工具Scala WorkSheet来验证,打开 ScalaIDE 选择 File -> New -> Scala WorkSheet, 建立一个名字为 ScalainAction 的 Scala WorkSheet。
保存以下代码,就可以看到自动交互的部分。
package com
import scala.collection.mutable.ArrayBuffer
object ScalainAction {
val b = ArrayBuffer[Int]()
}
2)缓存数组
缓存数组存储的元素可以随时改变。
b.insert(2,6) 在缓存数组第2个位置插入一个元素值为6。
b.insert(2,7,8,9) 在缓存数组第2个位置插入多个元素值为7,8,9.。
b.remove(2) 删除缓存数组中第2个元素。
b.remove(2,3) 在缓存数组的第2个位置,连续删除3个元素。
显示结果如下所示:
2. 进阶操作
2.1)yield操作
对数组进行遍历,每个元素乘以2在赋值给新的数组,这里要注意关键字 yield, 必须加上否则 2* elem就是表达式
def main(args: Array[String]): Unit = {
val c = Array(2, 3, 5, 7, 11)
val result = for (elem <- c) yield 2 * elem
for (elem <- result)
println(elem);
}
还可以直接对数组进行操作,比如汇总sum操作。 比如求数组Array(1,2,3,4)的总和= 1 +2+3+4 = 10
2.3) ArrayBuffer().max
在比如求缓存数组中最长的字符串操作。
2.4) ArrayBuffer().sorted
对缓存数组进行排序,默认情况下是升序排序。
也可以使用 scala.util.Sorting.quickSort()方法对Array进行快速排序。
2.5) Array().mkString()
通过Array.mkString()可以很方便的把数组转换为字符串,分隔符可以自定义。
3. 多维数组
先给数组第3行,第2列赋值,在把数组第 [Int][i+1]的值赋值给数组第[i]个
val matrix = Array.ofDim[Double](3, 4)
matrix(2)(1) = 42
val triangle = new Array[Array[Int]](10)
for (i <- 0 util triangle.length)
triangle(i) = new Array[Int](i + 1)
附上学习视频,供大家参考:
http://pan.baidu.com/s/1kTELAf1
0 0
- Scala学习第五天:数组的基本操作,数组的进阶操作和多维数组
- Scala数组的基本操作,数组进阶操作,多维数组
- 数组Array的基本操作,进阶操作,多维数组
- Scala学习第五天 Scala数组操作实战详解
- Scala学习第五天 Scala数组操作实战详解
- c语言版数据结构(奇迹冬瓜)-数组和广义表(多维数组的基本操作)
- 每天一点儿JAVA之数组篇--一维和多维数组的初始化和基本操作
- Scala数组相关的操作
- Scala数组的拉链操作
- 数组的基本操作
- 数组的基本操作
- 数组的基本操作
- 数组的基本操作
- 数组的基本操作
- 数组的基本操作
- 数组的基本操作
- 多维数组和指针操作
- 04.java语言基础-数组中的数组(多维数组)-多维数组的操作
- 循环、数组截取、随机数的产生(2015/7/30)
- STL学习记录(十四):其它几种算法
- VS2010关于error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- ARM处理器体系架构详细说明
- uvalive 4973
- Scala学习第五天:数组的基本操作,数组的进阶操作和多维数组
- Hdu 1789 Doing Homework again
- pycharm快捷键、常用设置、包管理
- Selenium IDE简介
- linux驱动中宏__setup(str, fn)
- uva11235 Frequent values(线段树区间合并)
- 黑马程序员——String类
- dsp之BF531笔记
- Xcode运行时候报路径错误和编译错误时及莫名其妙系列错误时