码迷,mamicode.com
首页 > 编程语言 > 详细

05 Scala 数组的基本操作,数组的进阶操作和多维数组

时间:2015-07-29 22:37:17      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

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);
 
  }
2.2) Array().sum 
  还可以直接对数组进行操作,比如汇总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)
 

DT大数据梦工厂的微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习。
 
 
Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:
腾讯微云:http://url.cn/TnGbdC 
360云盘:http://yunpan.cn/cQ4c2UALDjSKy   访问密码 45e2 


 
 
 

05 Scala 数组的基本操作,数组的进阶操作和多维数组

标签:

原文地址:http://www.cnblogs.com/wangshuo1/p/4687527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!