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. 输入一个URL之后。。。

    1.输入URL2.浏览器去浏览器缓存.系统缓存.路由器缓存查找缓存记录,有则直接访问URL对应的IP,无则下一步3.DNS解析URL,获得对应的IP4.浏览器通过TCP/IP三次握手连接服务器5.客户 ...

  2. JDBC驱动类型

    一下内容引用自http://wiki.jikexueyuan.com/project/jdbc/drive-types.html: 一.什么是JDBC驱动程序? JDBC驱动实现了JDBC API中定 ...

  3. git的配置文件

    转载:https://cnbin.github.io/blog/2015/06/19/git-config-ming-ling-cha-kan-pei-zhi-wen-jian/ Git Config ...

  4. windows 7 文件加密设置

    方法/步骤1 加密文件 1 右击需加密的文件,选择“属性”命令. 2 在属性对话框的“常规‘选项卡中单击”高级“按钮. 3 在弹出的对话框中选中”加密内容以便保护数据“复选框,单击”确定“按钮. 4 ...

  5. Cookie对象的特点

    1.存储少量不重要的数据2.存储在客户端的文本文件中(必须设置有效期,否则不被存储)3.安全性差4.存储的数据类型--字符串5.浏览器窗口无关,但与访问的站点相关6.具体特定的过期时间和日期7.在客户 ...

  6. C语言事实上不简单:数组与指针

    之前在写C的时候,没怎么留意数组.就这么定义一个.然后颠来倒去的使用即可了.只是后来碰到了点问题.解决后决定写这么一篇博客,数组离不开指针.索性就放一起好了. 如今我定义了一个数组:int cc[10 ...

  7. myEclipse怎样将程序部署到tomcat(附录MyEclipse调试快捷键)

    部署 1.选中你要部署的项目,在工具栏找到 Deploy MyEclipse J2EE Project to Server 2.单击Add,即出现例如以下界面.选择对应的Server,要和你在配置to ...

  8. ios网络学习------11 原生API文件上传之断点续传思路

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbmcyMDA5MzAzNTEz/font/5a6L5L2T/fontsize/400/fill/I0 ...

  9. 使用Docker部署Gitlab

    由于公司的代码server已使用Gitosis搭建,但由于用户和权限管理太麻烦. 如今想在原有server上再搭建Gitlab,使用Gitlab官方方法直接安装. 会导致与Gitosis冲突,使得Gi ...

  10. hdu 1711 KMP算法模板题

    题意:给你两个串,问你第二个串是从第一个串的什么位置開始全然匹配的? kmp裸题,复杂度O(n+m). 当一个字符串以0为起始下标时.next[i]能够描写叙述为"不为自身的最大首尾反复子串 ...