import junit.framework.TestCase
import scala.collection.mutable.ArrayBuffer; //数组(1)
//知识点-定义数组,变长数组,遍历数组,数组转换
class Demo1 extends TestCase { //定义数组
def test_^^() {
//定义数组语法1 val 变量名 = new Array[类类型](长度) 相当于java中 int indexs [] = new int [10];
val nums = new Array[Int](10)
//定义数组语法2 val 变量名 = Array(具体值,用逗号分开) 相当于java中 int indexs [] = {1,2,3};
//数组类型是推断出来的
val cums = Array(1, 2, 3) //通过 数组变量(下标) 访问数组中的元素 而不是 数组变量[下标]
val n1 = nums(1) //相当于 int n1 = nums[1];
} //变长数组
def test_@@() {
//定义变长数组语法1 val 变量名 = new ArrayBuffer[类类型]()
val nums = new ArrayBuffer[Int]()
//尾端添加元素
nums += 10
//尾端添加多个元素
nums += (5, 5, 9, 10)
//尾端添加其他数组或集合
val cums = Array(1, 2, 3, 4, 5)
nums ++= cums
//在指定下标插入元素
nums.insert(1, 0)
nums.insert(1, -1, -2, -3)
//移除尾部2个元素
nums.trimEnd(2)
//移除元素
nums.remove(2)
//移除指定下标 几个元素
nums.remove(1, 2) //变长数组转为固定长度数组
nums.toArray
//数组转为变长数组
val kums = Array(0);
kums.toBuffer
} //遍历数组
def test_&&() {
val cums = Array(1, 2, 3)
//正序遍历
for (i <- 0 until cums.length) println(cums(i))
for (i <- 0.until(cums.length)) println(cums(i))
// 0 until 10 返回 0 到9
// 0 to 10 返回0 到10
//实际上 0 until 10 底部是是用过方法调用: 0.until(10)
val k = 0 until 10
//倒序遍历 访问函数时 点忽略了 () 也忽略了 单个参数或者无参数的前提
for (i <- (0.until(cums.length)).reverse) println(cums(i))
for (i <- 0 until cums.length reverse) println(cums(i))
//遍历 间隔
for (i <- 0 until cums.length) println() //增强for循环
for (ele <- cums) println(ele)
} //数组转换
//yield 保存每次迭代出的变量,并且将执行某些动作后保存到新的数组中去
def test_%%(){
val array = Array(12,-1,-2,0)
val rs1 = for(ele <- array) yield (ele+10)%3
val rs2 = for(ele <- array if ele%2==0) yield (ele+11)*2
} //常用算法
def test_##(){
val array = Array(-1,8,5,15)
val s1 = array.sum//合集
val s2 = array.max//最大值
val s3 = array.min//最小值
val s4 = array.sorted//排序
scala.util.Sorting.quickSort(array)//快速排序
} //多维数组
def test_!!(){
val moreArray = new Array[Array[Int]](10)
val moreArray2 = Array.ofDim[Double](2, 2)
moreArray(0)(0) = 2 moreArray(0) = new Array[Int](10)
for(i <- 0 until moreArray.length){
moreArray(i) = new Array[Int](i+1)
} for(x <- moreArray2;i<- 0 until x.length) x(i) = 5
} }

Scala-基础-数组(1)的更多相关文章

  1. 【Scala学习之一】 Scala基础语法

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  2. Scala学习(一)--Scala基础学习

    Scala基础学习 摘要: 在篇主要内容:如何把Scala当做工业级的便携计算器使用,如何用Scala处理数字以及其他算术操作.在这个过程中,我们将介绍一系列重要的Scala概念和惯用法.同时你还将学 ...

  3. scala 基础知识总结

    在最开始处引入 log 相关的 包 import org.apache.log4j.{Logger,Level} 在需要屏蔽日志输出的地方加上这两行代码 // 屏蔽不必要的日志显示在终端上 Logge ...

  4. 1.scala基础语法总结

    Scala基础语法总结:Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的.如果一行里写多个语句那么分号是需要的 val s = "菜鸟教程"; pr ...

  5. Scala基础简述

    * Scala基础简述 本文章作为Scala快速学习的教程,前提环境是:我假设在此之前,你已经学会了Java编程语言,并且我们以随学随用为目标(在此不会深度挖掘探讨Scala更高级层次的知识).其中语 ...

  6. SCALA基础知识学习

    注:本文只说和Java不同的地方. 总结自: Scala详细教程 Scala教程 scala基础语法 Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ";" 是 ...

  7. 第一章 Scala基础篇

    目录 一.Scala基础语法 (一) 变量.类型.操作符 1.变量申明 2.字符串 3.数据类型 4.操作符 (二)循环判断 1.块表达式 2.条件表达式 3.循环表达式 (三)方法和函数 1.方法 ...

  8. 第1节 Scala基础语法:5、6、7、8、基础-申明变量和常用类型,表达式,循环,定义方法和函数

    4.    Scala基础 4.1.   声明变量 package cn.itcast.scala object VariableDemo {   def main(args: Array[Strin ...

  9. 【搬砖】安卓入门(4)- Java开发编程基础--数组

    05.01_Java语言基础(数组概述和定义格式说明)(了解) A:为什么要有数组(容器) 为了存储同种数据类型的多个值 B:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. ...

  10. PHP基础 数组函数 的总结

    <?php /** * PHP基础 数组操作函数 * * 指针函数:[类似于数据库的游标] 见例1.1 * current($arr)/pos 返回当前指针指向的元素 * key($arr) 返 ...

随机推荐

  1. codevs——6221 数的统计

    6221 数的统计  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 有一个人名字叫A,B总喜欢打他. 这 ...

  2. html5视频播放器 一 (改写默认样式)

    一个项目用到了html5视频播放器,于是就写了一个,走了很多坑,例如在chrome中加载视频出现加载异常等 先看看效果 是不是感觉换不错,以下是我播放器改写样式的布局. <!DOCTYPE ht ...

  3. Use Elasticksearch to solve TOP N issue

    The raw data is like timestamp, router, interface, src_ip, dst_ip, protocol, pkts 10000000, 1.1.1.1 ...

  4. sonar做代码检测时如何忽略一些代码文件

    1.管理员登录sonar 2.如图 一条规则配置一个,不要填写逗号或者分号分割的多个规则

  5. centos7容量扩充

    新买的2T 绿盘到货了~~好开心的说~但毕竟是第一次安装,事先还是在网上搜索了很多资料才敢动手,下面就开始啦~ 环境:Centos7.dell服务器.2T容量绿盘 1.硬盘连接好之后,开机先使用fdi ...

  6. C#如何发布项目 发布软件

    如下图所示,我随便搞了一个小软件,为了测试还在Debug目录下放了一个一副图片和一个LOGO   直接点击生成-发布 "软件名称",然后点击完成   结果报错说没找到SignToo ...

  7. 【Hibernate】Hibernate的多表查询

    在<[Hibernate]Hibernate的聚类查询.分组查询.排序与时间之差>(点击打开链接)一文中已经讲述过怎样利用HQL语句代替SQL语句.进行聚类查询.分组查询.排序与时间之差的 ...

  8. Android实战简易教程-第四十五枪(SlideSwitch-好看又有用的开关button)

    开关button也是在项目中经经常使用到的控件,github上有开源的项目,我们研究下它的用法: 1.SlideButton.java: /* * Copyright (C) 2015 Quinn C ...

  9. Codeforces Round #344 (Div. 2) E. Product Sum 二分斜率优化DP

    E. Product Sum   Blake is the boss of Kris, however, this doesn't spoil their friendship. They often ...

  10. mystr = '{}{}{}'.format(mystr, random.randint(0, 9), adurl)

    mystr = '{}{}{}'.format(mystr, random.randint(0, 9), adurl)