Scala学习第五天数组
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学习第五天数组相关推荐
- ES6学习(五)—数组的扩展
ES6学习(五)-数组的扩展 挑重点 文章只列举了一部分 完整版请看阮一峰ES6入门教程 点我查看阮一峰ES6入门教程 一.扩展运算符 扩展运算符(spread)是三个点(-).它好比 rest 参数 ...
- JavaScript学习(六十五)—数组知识点总结
JavaScript学习(六十五)-数组 学习内容 一.什么是数组 二.数组的分类 三.数组的创建方式 四.数组元素 五.数组的操作 六.数组元素遍历的四种方法 七.随机数为数组赋值 八.数组的比较 ...
- 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 ...
- Scala学习笔记(三)
Scala学习笔记(三) 一.模式匹配 1. 简单模式匹配 2. 匹配类型 3. 守卫 4. 匹配样例类 5. 匹配数组 6. 匹配列表 7. 匹配元组 8. 变量声明中的模式匹配 8.1 获取数组中 ...
- Scala学习笔记(一)
Scala学习笔记(一) 一.Scala简介 二.Scala安装与配置 1. 安装JDK 2. 安装Scala SDK 3. 安装IDEA插件 三.Scala解释器 1. 启动Scala解释器 2. ...
- Scala学习笔记-方便查找使用 为Spark学习打基础
Scala学习 注意 伊始 为什么是Scala 网课 环境 电脑环境安装 关于版本的声明 我的环境和版本 IDEA插件安装 IDEA关联Scala源码 基础部分1 文档注释和生成 字符串的三种输出 变 ...
- 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法
强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例 5.1 TD预测 例5.1 回家时间的估计 5.2 TD预测方法的优势 例5.2 随机移动 5.3 ...
- 机器学习(三)--- scala学习笔记
Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...
- PostgreSQL学习手册(五) 函数和操作符
PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符: 常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符: 下面是Po ...
最新文章
- pyautogui 的用法 python自动操作鼠标、键盘
- HDU-3746-Cyclic Nacklace
- *LeetCode--Add Two Numbers
- valgrind 详解
- 知识图谱还有哪些方向值得深入研究?这 6 篇最新论文给你答案
- python在线投票系统 统计票数_python投票统计程序,统计序列中各个数值的份数,字典的应用。...
- Linux系统编程17:进程控制之进程等待为什么进程需要被等待wait方法和waitpid方法阻塞和非阻塞等待
- docker k8s helm常用命令梳理
- ros机器人写字,svg图片绘制,二三阶贝塞尔计算公式转代码
- 微贷网 Java_关于Java集合的小抄
- spring5学习笔记
- 2019/9/10谷歌开发者大会汇总
- Adobe Photoshop 2021 22.4.2 绿色精简版
- intel vPro LMS模块 Linux环境编译
- 极光短信推送-java使用
- hdu 4114 Disney's FastPass 状压dp
- 华为防火墙配置策略路由实现多个ISP出接口的智能选路
- html5怎么调用cur指针,鼠标指针.cur.ani导出与制作
- 安装 pulseaudio
- Anaconda使用说明(个人版)