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. day2-搭建hdfs分布式集群

    1.搭建hdfs分布式集群 4.1 hdfs集群组成结构: 4.2 安装hdfs集群的具体步骤: 一.首先需要准备N台linux服务器 学习阶段,用虚拟机即可! 先准备4台虚拟机:1个namenode ...

  2. java入门之——对象转型

    对象的类型转换是我们在编程的时候常常会遇到的,java平台也是如此.比方一些基本类型的数据转型和复合数据的转换. 举例 java语言中主要分为向上转型和向下转型,怎样来了解和掌握这两者转型的关系呢?首 ...

  3. 编程算法 - n个骰子的点数(递归) 代码(C)

    n个骰子的点数(递归) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 把n个骰子仍在地上, 全部骰子朝上一面的点数之和为s. 输入n, 打印出 ...

  4. android的ndk学习(1)

    android的ndk学习(1)   之前学了一段时间ndk,总认为要总结一下.ndk使得很方便地实现java和C与C++代码的相互沟通.合理地掌握使用ndk能够提高应用程序的运行效率.所以对于学习a ...

  5. Maven+Mybatis+Spring+SpringMVC实现分页查询(附源代码)

    以下小宝鸽将分享一篇Mybatis分页功能的博文,以下将给出具体的步骤.跟着博主的节奏肯定能实现.另外最后还会附上整个project的源代码.假设是没有使用过maven的猿友可自行下载相关的jar包就 ...

  6. 抢占式内核与非抢占式内核中的自旋锁(spinlock)的差别

    一.概括 (1)自旋锁适用于SMP系统,UP系统用spinlock是作死. (2)保护模式下禁止内核抢占的方法:1.运行终端服务例程时2.运行软中断和tasklet时3.设置本地CPU计数器preem ...

  7. The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory的解决方法

    An error occurred at line: [31] in the generated java file: [/data/tmisnt/work/Catalina/localhost/_/ ...

  8. kafka 生产者消费者 api接口

    生产者 import java.util.Properties; import kafka.javaapi.producer.Producer; import kafka.producer.Keyed ...

  9. mysql_connect 等待时间长,修改连接地址为127.0.0.1即可

    程序搬家后,运行非常慢分析流程: 1.外网的等待时间太长 2.内容等待时间也很长 3.断点查到仅仅一句 mysql_connect ("localhost",***,***)就要1 ...

  10. java7中使用透明时与输入法冲突

    在Stackoverflow的这找到了答案,需要设置一下系统参数: static { System.setProperty("sun.java2d.noddraw", " ...