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. uva 1411 Ants (权值和最小的完美匹配---KM算法)

    uva 1411 Ants Description Young naturalist Bill studies ants in school. His ants feed on plant-louse ...

  2. 合并链表 —— 剑指Offer

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.     思路: 也在考虑能不能更优雅的代码写法,但是最后,还是两边都写一下,能增加代码清晰度. ...

  3. windows 7 忘記密碼,用“带命令行的安全模式”

    net user administrator /active:yes net user tester /add net localgroup administrators tester /add

  4. java 数据结构. 源代码阅读

    Collections工具类里的 Collections.synchronizedList public static <T> List<T> synchronizedList ...

  5. Android和MVC

    Activity和Android的mvc模式 http://blog.csdn.net/dengshengjin2234/article/details/8502097   //android涉及到的 ...

  6. 【LeetCode刷题Java版】Reverse Words in a String

    Given an input string, reverse the string word by word. For example, Given s = "the sky is blue ...

  7. Android学习笔记-listview实现方式之BaseAdapter

    listview是Android开发中最为常用的组件,这里我们就学习一下用BaseAdapter的方式实现listview, 主布局activity_main.xml是这样的: <LinearL ...

  8. J2SE基础:11.异常处理

    1:异常的概念: 异常是程序在执行时发生的事件(异常发生在执行期间). 程序出现错误.打断原本的运行流程. 2:Java中处理异常. 在Java中.异常被封装成一个对象.(属性和方法) 3:异常产生 ...

  9. SQLServer2012连接数据库报错

    尝试读取或写入受保护的内存 这通常指示其他内... CMD 输入 netsh winsock reset,重启计算机即可

  10. 【OI】简单的分块

    介绍下简单的分块: 当我们遇到区间类问题的时候,如何保证我们快速而高效地完成操作? 答案是线段树分块. 所谓分块,就是把一个序列分成许多块分别维护.是不是想起了树状数组 这样能大大提高效率: 例如,我 ...