雨像什么| 大便每天四五次是什么病| 小土豆是什么意思| 小病不治下一句是什么| 什么奶粉对肠胃吸收好| 最近老放屁是什么原因| 腹泻能吃什么| 叶酸有什么作用| 糟卤对身体有什么危害| 夏天喝什么茶叶| 有白痰是什么原因| 鹦鹉拉稀吃什么药| 手机的英文是什么| 婴儿肥是什么意思| 电风扇什么牌子好| 自慰是什么| 周武王叫什么名字| 兔女郎是什么| 女儿红是什么| 什么球不能踢脑筋急转弯| 麻黄碱是什么| 褒义词什么意思| seconds是什么意思| 女人吃什么补气血| 什么叫雷达| 梦见灵堂是什么预兆| 体检需要带什么| 什么叫化学| 骁字五行属什么| 宝宝出急疹要注意什么| 3a是什么| 月经提前10天正常吗是什么原因| 马蹄铁什么时候发明的| 一什么天| 痛经挂什么科| pcv是什么意思| 痛风频繁发作说明什么| 泰格豪雅属于什么档次| 肌酐是什么指标| 女人梦到被蛇咬是什么意思| 衪是什么意思| 脂蛋白是什么意思| 兹禧属什么生肖| 大腿内侧疼痛什么原因| 肚子胀气吃什么药好得快| 叶酸每天什么时候吃最好| 男性查hpv挂什么科| 什么是直接胆红素| 胰岛素为什么不能口服| 为什么不建议做冠脉cta检查| 什么食物蛋白质含量最高| 湿气重用什么泡脚最好| 清白是什么意思| 咽喉有异物感吃什么药| bred是什么意思| 血脂是指什么| 什么水果糖分最低| 老感冒是什么原因| 地图鱼吃什么| lpp什么意思| 炸薯条用什么淀粉| 送长辈什么礼物好| 早上吃鸡蛋有什么好处| 指骨属于什么骨| 环比是什么意思| 什么是盗汗| 梦见好多老鼠是什么意思| 女性私处痒是什么原因引起的| 睡觉吹气是什么原因| 1月15日什么星座| 荨麻疹忌口忌什么食物| 女人右眼跳预示着什么| 脚底板热是什么原因| 匹维溴铵片治什么病| 骨质增生是什么原因引起的| 前列腺实质回声欠均匀什么意思| 作奸犯科是什么意思| 胃反流是什么原因| 减肥最快的方法是什么| 7月6日是什么节日| tvoc是什么| 治肝病最好的药是什么药| 叶子是什么意思| 加湿器用什么水| 金钱草长什么样| 舍是什么结构| 什么是痉挛| 工作单位是什么意思| 经期可以喝什么茶| 舌头凉凉的是什么原因| 凯旋归来是什么意思| 3月7日什么星座| fs是什么单位| 2021什么年| 十月十五号是什么星座| audrey是什么意思| below是什么意思| 小孩呕吐是什么原因| 孕妇缺维生素D对胎儿有什么影响| 耳朵内痒是什么原因| 起死回生是什么意思| 酒酿蛋什么时候吃效果最好| 眼睛屈光不正什么意思| 金牛男和什么星座女最配| 一个月一个屯念什么| 什么是疤痕增生| 血糖高吃什么食物好| 鸡吃什么| c2可以开什么车| 脑瘫是什么| 范冰冰和洪金宝什么关系| 酒后喝什么饮料比较好| 古代质子是什么意思| 飞蚊症是什么症状| 梧桐树叶像什么| 十月23日是什么星座| 吃荔枝有什么好处| 东莞有什么厂| 妇炎康片有什么副作用| 毛囊炎的症状是什么原因引起的| 高血压高血糖挂什么科| 3月20号是什么星座| energy是什么牌子| 刘晓庆为什么坐牢| 一个月没有来月经是什么原因| 糖尿病适合喝什么饮料| 银装素裹是什么意思| 白蚂蚁长什么样子图片| 10月13是什么星座| 低血糖中医叫什么病| 占有欲是什么意思| 心脏五行属什么| 食是什么生肖| 手指关节痛是什么原因| 瓒字取名有什么寓意| 和解少阳是什么意思| 耳膜炎是什么原因引起的| 老流鼻血是什么原因引起的| 肖战是什么星座| 什么的兵马俑| sweet什么意思| 拘留所和看守所有什么区别| 为什么一直打喷嚏| 腹股沟黑是什么原因| 后羿射日告诉我们什么道理| 大葱什么时候播种| 三秦是什么意思| 梦见房子漏水是什么意思| ccg是什么意思| 蛊是什么| 无限未来为什么不写了| kub是什么检查| 老生常谈是什么意思| 吃什么补叶酸| 好马不吃回头草是什么意思| 不检点是什么意思| 梦到钓鱼是什么征兆| 什么人不适合普拉提| 夏天适合吃什么菜| 师夷长技以制夷是什么意思| 五指毛桃不能和什么一起吃| 野鸡大学是什么意思| 战略支援部队是干什么的| 血糖高能喝什么粥| 诸事皆宜是什么意思| 2029年属什么生肖| 狼爪是什么牌子| 大姨妈不能吃什么水果| 折耳猫是什么| 永恒是什么意思| 硬伤是什么意思| 风骚什么意思| 禄是什么意思| 1977属什么生肖| 寻常疣用什么药膏| 螃蟹的什么部位不能吃| 公安和警察有什么区别| 脑委缩吃什么药能空制| 女性尿道感染吃什么药| 炸鸡用什么油| 血小板平均体积偏高是什么意思| 账单日是什么意思| 什么是低保户| 磨牙是什么原因| 原生态是什么意思| 买手是什么意思| 笋吃多了有什么危害| 妈妈是什么| 数据是什么意思| 11月18号是什么星座| 吃什么食物增加黑色素| 息肉是什么东西| 巧囊是什么原因形成的| 一点半是什么时辰| 男性夜间盗汗是什么原因| 鼻翼长痘是什么原因| 脚指甲发白是什么原因| 八月2号是什么星座| 玉和翡翠有什么区别| 阿修罗是什么意思| 1210是什么星座| 75岁属什么| 维生素h的作用及功能主治是什么| 古龙香水什么味道| 结核阳性是什么意思| 胃寒吃什么可以暖胃| 什么是粳米| 青瓜和黄瓜有什么区别| 喉咙痰多吃什么药最好| 腿发热是什么原因引起的| 收缩压是什么意思| 心无什么用| 白菜什么时候种| 白术适合什么地方种植| sjb是什么意思| 个人送保是什么意思| 诺诺是什么意思| 82年的拉菲是什么意思| 天天都需要你爱是什么歌| 心影增大是什么意思| 治疗狐臭挂什么科| 心脏肿大是什么原因| mr是什么检查| 茯苓的功效与作用是什么| 查转氨酶挂什么科| 夜不能寐什么意思| 48年属什么生肖| 西瓜虫喜欢吃什么| 无花果什么时候种植| 宿便什么意思| 顺字五行属什么| ra是什么| 上海有什么烟| 理疗和按摩有什么区别| 唐僧属什么生肖| 胶原蛋白是什么东西| 1946年属狗的是什么命| 把碗打碎了有什么征兆| 下焦湿热吃什么中成药| 2026年是什么命| 嬴稷和嬴政是什么关系| 破伤风什么时候打最好| 喉咙痛去药店买什么药| 窘迫是什么意思| 乙肝两对半和乙肝五项有什么区别| 脖子淋巴结发炎吃什么药| 鸭子烧什么配菜好吃| 后脑勺白头发多是什么原因| 儿童经常头晕什么原因导致的| 路由器坏了有什么症状| dos是什么| 皮肤暗黄是什么原因造成的| 什么时候测血压最准确| 挺舌反应是什么| 怀孕初期吃什么| 肺炎支原体感染吃什么药| 鸭子喜欢吃什么| 武夷山在什么地方| 少将是什么级别| 对牛弹琴告诉我们什么道理| 便宜的反义词是什么| 茵陈是什么| 玫瑰花有什么功效| 怀孕了不想要最好的办法是什么| 百度
Scala Tutorial / Scala 数组

记吃不记打的下一句是什么

百度 转型升级,推动经济高质量发展高质量发展是适应我国社会主要矛盾变化和全面建设社会主义现代化国家的必然要求。

Scala 语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编辑应语言来说都是重要的数据结构之一。

声明数组变量并不是声明 number0、number1、...、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。

数组的第一个元素索引为0,最后一个元素的索引为元素总数减1。


声明数组

以下是 Scala 数组声明的语法格式:

var z:Array[String] = new Array[String](3)

或

var z = new Array[String](3)

以上语法中,z 声明一个字符串类型的数组,数组长度为 3 ,可存储 3 个元素。我们可以为每个元素设置值,并通过索引来访问每个元素,如下所示:

z(0) = "php"; z(1) = "Baidu"; z(4/2) = "Google"

最后一个元素的索引使用了表达式 4/2 作为索引,类似于 z(2) = "Google"

我们也可以使用以下方式来定义一个数组:

var z = Array("php", "Baidu", "Google")

下图展示了一个长度为 10 的数组 myList,索引值为 0 到 9:

java_array.jpg


处理数组

数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本的 for 循环。

以下实例演示了数组的创建,初始化等处理过程:

object Test {
   def main(args: Array[String]) {
      var myList = Array(1.9, 2.9, 3.4, 3.5)
      
      // 输出所有数组元素
      for ( x <- myList ) {
         println( x )
      }

      // 计算数组所有元素的总会
      var total = 0.0;
      for ( i <- 0 to (myList.length - 1)) {
         total += myList(i);
      }
      println("总和为 " + total);

      // 查找数组中的最大元素
      var max = myList(0);
      for ( i <- 1 to (myList.length - 1) ) {
         if (myList(i) > max) max = myList(i);
      }
      println("最大值为 " + max);
    
   }
}

执行以上代码,输出结果为:

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
总和为 11.7
最大值为 3.5

多维数组

多维数组一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组。矩阵与表格是我们常见的二维数组。

以上是一个定义了二维数组的实例:

var myMatrix = ofDim[Int](3,3)

实例中数组中包含三个数组元素,每个数组元素又含有三个值。

接下来我们来看一个二维数组处理的完整实例:

import Array._

object Test {
   def main(args: Array[String]) {
      var myMatrix = ofDim[Int](3,3)
      
      // 创建矩阵
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            myMatrix(i)(j) = j;
         }
      }
      
      // 打印二维阵列
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            print(" " + myMatrix(i)(j));
         }
         println();
      }
    
   }
}

运行实例 ?

执行以上代码,输出结果为:

$ scalac Test.scala
$ scala Test
0 1 2
0 1 2
0 1 2

合并数组

以下实例中,我们使用 concat() 方法来合并两个数组,concat() 方法中接受多个数组参数:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = Array(1.9, 2.9, 3.4, 3.5)
      var myList2 = Array(8.9, 7.9, 0.4, 1.5)

      var myList3 =  concat( myList1, myList2)
      
      // 输出所有数组元素
      for ( x <- myList3 ) {
         println( x )
      }
   }
}

执行以上代码,输出结果为:

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
8.9
7.9
0.4
1.5

创建区间数组

以下实例中,我们使用了 range() 方法来生成一个区间范围内的数组。range() 方法最后一个参数为步长,默认为 1:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = range(10, 20, 2)
      var myList2 = range(10,20)

      // 输出所有数组元素
      for ( x <- myList1 ) {
         print( " " + x )
      }
      println()
      for ( x <- myList2 ) {
         print( " " + x )
      }
   }
}

执行以上代码,输出结果为:

$ scalac Test.scala
$ scala Test
10 12 14 16 18
10 11 12 13 14 15 16 17 18 19

Scala 数组方法

下表中为 Scala 语言中处理数组的重要方法,使用它前我们需要使用 import Array._ 引入包。

序号方法和描述
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

scala> 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 个元素:

scala> 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 开始。

耳朵里发炎用什么药好 黑茶色是什么颜色 检测毛囊去什么医院 无异于是什么意思 免疫力下降吃什么好
高血脂吃什么食物最好 小孩子上户口需要什么证件 得瑟是什么意思 知我者莫若你什么意思 背疼应该挂什么科
百香果有什么营养 省委委员是什么级别 真丝香云纱是什么面料 咖啡与什么食物相克 茉莉花茶属于什么茶
手脚浮肿是什么原因 泛化是什么意思 急性湿疹用什么药膏 减肥晚上吃什么合适 太阳黑子是什么东西
什么t恤质量好hcv8jop3ns9r.cn 覃读什么hcv8jop6ns4r.cn 哈森鞋子属于什么档次xinmaowt.com 绝户是什么意思hcv8jop6ns1r.cn 头发有点黄是什么原因hcv7jop6ns6r.cn
老舍被誉为什么hcv9jop2ns4r.cn 腰椎退行性改变什么意思hcv7jop7ns3r.cn 老年人助听器什么牌子好hcv8jop1ns6r.cn 做完胃肠镜后可以吃什么imcecn.com ikbc是什么牌子hcv8jop4ns3r.cn
山药炒什么好吃hcv8jop4ns4r.cn 慵懒是什么意思hcv9jop2ns4r.cn 1990年属马是什么命hcv8jop9ns1r.cn 什么是过敏性咳嗽baiqunet.com 手脚冰凉吃什么好hcv8jop5ns9r.cn
世界上最难写的字是什么xscnpatent.com 相交是什么意思hcv9jop4ns0r.cn 吃什么能让胸变大hcv9jop6ns4r.cn 月经不调吃什么药hcv8jop9ns9r.cn 炁怎么读什么意思hcv9jop3ns5r.cn
百度