2019独角兽企业重金招聘Python工程师标准>>>

package com.learn.scalaimport scala.collection.mutable.ArrayBuffer/*** Scala学习第五天* Scala中有两种类型的数组,一种是Array定长,另一种是ArrayBuffer变长数组* Array与ArrayBuffer的区别类似于Java中数组与ArrayList的区别* Created by zhuqing on 2017/2/24.*/
object Day5Array {def main(args: Array[String]): Unit = {/*** Array有两种初始化方式*///1. new Array[Int](10) ; 长度为10的Int类型的数组,所有的值为nullval arr = new Array[Int](10);println(arr.length);//打印10//2. Array[Int](10,9,...) ; 长度为2的Int类型的数组,并且这个数组的第一个是10,第二是9 .其实是使用了伴生对象的apply方法val arr1 = Array[Int](10, 9);println(arr1.length); //打印2/*** 更多关于Array的操作看API:* http://www.scala-lang.org/api/current/scala/Array.html*///Array数组的赋值取值arr(0) = 10;arr(1)=9println(arr(0)+":"+arr(1));//打印10:9/*** ArrayBuffer与Array初始化类似*///与Java的ArrayList,只是初始化了空间,但是真实的长度是0val arrBuff = new ArrayBuffer[Int](10)println(arrBuff.length); //打印0val arrBuff2 = ArrayBuffer[Int](10, 9)println(arrBuff2.length); //打印2/**** arrBuff的赋值与Array不一样 使用insert方法,第一个参数是位置,从第二个以后是值.* 方法的定义insert(n : Int, elems : A*)* 关于ArrayBuffer的API:http://www.scala-lang.org/api/current/scala/collection/mutable/ArrayBuffer.html*/arrBuff.insert(0,10,9);println(arrBuff(0)+":"+arrBuff(1));//打印10:9/*** ArrayBuffer的几个常用的方法*/val arrayBuffer = this.createArrayBuffer()//remove(index:Int) 移除index位置的数据,后面的数据向前移动一个println(arrayBuffer(0)) //打印10//移除后后面数据向前移动一位arrayBuffer.remove(0);println(arrayBuffer(0)) //打印9//ArrayBurffer后面拼接1到10的区间Range , Range实现了TraversableOncearrayBuffer ++= 1 to 10;printlnArr(arrayBuffer)//打印9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10var arrayB = new ArrayBuffer[Int](20)//arrayB后面再拼接一个ArrayBuffer,ArrayBuffer实现了TraversableOncearrayB ++= arrayBufferprintlnArr(arrayB)//打印9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10//ArrayBuffer也可以用++= 拼接一个数组,但是从API看++= 方法中的参数是TraversableOnce,// 可能在这里Array自动转换了吧,这里谁要是知道原理,可以讲一下。arrayB ++= arr1printlnArr(arrayB)//打印9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 10 9}/*** 创建一个1到10的ArrayBuffer* @return*/def  createArrayBuffer() : ArrayBuffer[Int] = {//arrBuff设置值 :_*的意思可以看前一天的ArrayBuffer[Int]((1 to 10).reverse:_*)}def printlnArr(arr:ArrayBuffer[Int]): Unit ={println()//数组的遍历for(a <- arr){print(a+" ")}println()}
}

转载于:https://my.oschina.net/u/587323/blog/846129

Scala学习第五天数组相关推荐

  1. ES6学习(五)—数组的扩展

    ES6学习(五)-数组的扩展 挑重点 文章只列举了一部分 完整版请看阮一峰ES6入门教程 点我查看阮一峰ES6入门教程 一.扩展运算符 扩展运算符(spread)是三个点(-).它好比 rest 参数 ...

  2. JavaScript学习(六十五)—数组知识点总结

    JavaScript学习(六十五)-数组 学习内容 一.什么是数组 二.数组的分类 三.数组的创建方式 四.数组元素 五.数组的操作 六.数组元素遍历的四种方法 七.随机数为数组赋值 八.数组的比较 ...

  3. Scala学习笔记(黑马视频)

    目录 2.Scala第二章节 2.1 输出语句和分号 2.1.1 输出语句 2.1.2 分号 2.2 Scala中的常量 2.2.1 概述 2.2.2 分类 2.2.3 代码演示 2.3. Scala ...

  4. Scala学习笔记(三)

    Scala学习笔记(三) 一.模式匹配 1. 简单模式匹配 2. 匹配类型 3. 守卫 4. 匹配样例类 5. 匹配数组 6. 匹配列表 7. 匹配元组 8. 变量声明中的模式匹配 8.1 获取数组中 ...

  5. Scala学习笔记(一)

    Scala学习笔记(一) 一.Scala简介 二.Scala安装与配置 1. 安装JDK 2. 安装Scala SDK 3. 安装IDEA插件 三.Scala解释器 1. 启动Scala解释器 2. ...

  6. Scala学习笔记-方便查找使用 为Spark学习打基础

    Scala学习 注意 伊始 为什么是Scala 网课 环境 电脑环境安装 关于版本的声明 我的环境和版本 IDEA插件安装 IDEA关联Scala源码 基础部分1 文档注释和生成 字符串的三种输出 变 ...

  7. 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法

    强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例 5.1 TD预测 例5.1 回家时间的估计 5.2 TD预测方法的优势 例5.2 随机移动 5.3 ...

  8. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  9. PostgreSQL学习手册(五) 函数和操作符

    PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符:     常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符:     下面是Po ...

最新文章

  1. pyautogui 的用法 python自动操作鼠标、键盘
  2. HDU-3746-Cyclic Nacklace
  3. *LeetCode--Add Two Numbers
  4. valgrind 详解
  5. 知识图谱还有哪些方向值得深入研究?这 6 篇最新论文给你答案
  6. python在线投票系统 统计票数_python投票统计程序,统计序列中各个数值的份数,字典的应用。...
  7. Linux系统编程17:进程控制之进程等待为什么进程需要被等待wait方法和waitpid方法阻塞和非阻塞等待
  8. docker k8s helm常用命令梳理
  9. ros机器人写字,svg图片绘制,二三阶贝塞尔计算公式转代码
  10. 微贷网 Java_关于Java集合的小抄
  11. spring5学习笔记
  12. 2019/9/10谷歌开发者大会汇总
  13. Adobe Photoshop 2021 22.4.2 绿色精简版
  14. intel vPro LMS模块 Linux环境编译
  15. 极光短信推送-java使用
  16. hdu 4114 Disney's FastPass 状压dp
  17. 华为防火墙配置策略路由实现多个ISP出接口的智能选路
  18. html5怎么调用cur指针,鼠标指针.cur.ani导出与制作
  19. 安装 pulseaudio
  20. Anaconda使用说明(个人版)

热门文章

  1. FreeBSD学习总结
  2. 一些常用黑客工具的初步使用
  3. POJ 3368 Frequent values 【ST表RMQ 维护区间频率最大值】
  4. ubuntu命令安装jdk
  5. LeetCode-35. Search Insert Position
  6. 【转载】比特币入门教程
  7. Windows Internals 笔记——错误处理
  8. 在word中的公式以代码形式体现在web上的方法
  9. apt-get 介绍。
  10. POJ 2075 Tangled in Cables