基础内容

1. 数组定义

定长、可变数组的定义;元素添加,删除,排序,求和等常用运算

import scala.collection.mutable.ArrayBuffer
import scala.math.BigDecimal.RoundingMode /**
* @author xwolf
* @date 2017-04-09 18:23
* @since 1.8
*/
object Collection { def main(arg:Array[String]): Unit ={ multipleArray()
} /**
* 数组创建
*/
private def create() :Unit={
val a = new Array[String](1)
a(0)="Hello" println(a.toBuffer)
val ab =ArrayBuffer(3)
ab+=1
//append 可接受多个参数,在数组末尾追加元素
ab.append(12,3,3)
ab ++=Array(5,12)
println("insert after 1: "+ ab)
ab += (3,5)
println("insert after 2: "+ ab)
// 在指定索引 添加元素
ab.insert(2,123,32)
println("remove before:"+ab)
//移除当前索引的元素
ab.remove(1)
println("remove after 1:"+ ab)
//移除当前索引开始的元素的个数,超出会抛出下标越界异常
ab.remove(4,3)
println(ab)
val ary = ab.toArray
val arrayB = ary.toBuffer
println(arrayB) } /**
* 排序
*/
def sort(){
val ary =ArrayBuffer[Int]()
ary ++=Array(1,123,3,123,4,12,10)
println(ary) val a = ary.sortBy(x=>x)
println(a)
//自定义排序
val c= ary.sortWith((a,b)=>a.compareTo(b)<0)
println(c)
val d= ary.sortWith((a,b)=>a.compareTo(b)>0) val f = ary.sorted
println(f)
println(d)
//去重 过滤 map
val e = d.distinct.filter(_.%(2)!=0).map(_.+(2))
println(e)
} /**
* 常用运算
*/
def calculator():Unit={
val ary =Array(12,2,12,33,2,123,1)
println(ary.max)//最大
println(ary.min)//最小值
println(ary.sum)//求和
println(average(ary))//求平均值
} /**
* 求数组的平均值 四舍五入保留两位小数
* @param ary
* @return
*/
private def average(ary:Array[Int]):BigDecimal={
val len = ary.length
val sum = ary.sum
(BigDecimal.valueOf(sum)./(BigDecimal.valueOf(len))).setScale(2,RoundingMode.UP)
} /**
* 多维数组
*/
def multipleArray(): Unit ={
//多维数组定义
val mary = new Array[Array[Int]](2)
mary(0)=Array(1,2,3,1,4)
mary(1)=Array(2,1,4)
for(ary<-mary){
println(ary.toBuffer)
} //定义 2行 3列 数组
val nary =Array.ofDim[Int](2,3)
nary(0)(0)=12
nary(0)(1)=13
nary(0)(2)=14 nary(1)(0)=22
nary(1)(1)=23
nary(1)(2)=24 println(nary.toBuffer) for(i<-0 until nary.length){
println(nary(i).toBuffer)
} }
}

  

scala 数组操作中使用了隐式转化.

更多资料参考:

scala 数组

scala 隐式转换

【scala】scala 数组 (三)的更多相关文章

  1. Scala学习——数组/映射/元组

    [<快学Scala>笔记] 数组 / 映射 / 元组 一.数组 1.定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初 ...

  2. Scala学习2 ———— 三种方式完成HelloWorld程序

    三种方式完成HelloWorld程序 分别采用在REPL,命令行(scala脚本)和Eclipse下运行hello world. 一.Scala REPL. 按照第一篇在windows下安装好scal ...

  3. Scala系统学习(三):Scala基础语法

    如果您熟悉Java语言语法和编程,那么学习Scala将会很容易.Scala和Java之间最大的句法差异在于行结束字符的分号(;) 是可选的. 当编写Scala程序时,它可以被定义为通过调用彼此的方法进 ...

  4. hiho一下122周 后缀数组三·重复旋律

    后缀数组三·重复旋律3 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为长度为 N 的数构成的数列.小Hi ...

  5. SDUT 3347 数据结构实验之数组三:快速转置

    数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 转置运算是一 ...

  6. hihocoder #1415 : 后缀数组三·重复旋律3

    #1415 : 后缀数组三·重复旋律3 Time Limit:5000ms Case Time Limit:1000ms Memory Limit:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢 ...

  7. SDUT-3347_数据结构实验之数组三:快速转置

    数据结构实验之数组三:快速转置 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 转置运算是一种最简单的矩阵运算,对于一个 ...

  8. Java基础系列(36)- 数组三种初始化及内存分析

    内存分析 数组三种初始化 静态初始化 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)} 动态初始化 int[] a = new i ...

  9. Scala从入门到放弃(三)Scala的数组、映射、元组和集合

    1.数组 1.1定长数组和变长数组 object ArrayDemo { def main(args: Array[String]): Unit = { //初始化一个长度为8的定长数组,其数组元素均 ...

随机推荐

  1. QPushButton取消按压后文字下沉效果

    1.下沉原因 1.1.QPushButton源码 void QPushButton::initStyleOption(QStyleOptionButton *option) const { if (d ...

  2. awk mysql

    mysqlbinlog --no-defaults --base64-output=decode-rows -v -v mysql-bin.000002 |awk '/###/{if($0~/UPDA ...

  3. IDEA 修改文件编码

    Intellij Idea 修改 properties 文件编码 现象:idea 默认的properties文件是GBK,当有中文时,不同的客户端配置的编码不同时,可能产生中文乱码. 解决:修改pro ...

  4. CATALINA_BASE与CATALINA_HOME的区别

    http://blog.csdn.net/keda8997110/article/details/21400455 —————————————————————————————————————————— ...

  5. [hadoop读书笔记] 第九章 构建Hadoop集群

    P322 运行datanode和tasktracker的典型机器配置(2010年) 处理器:两个四核2-2.5GHz CPU 内存:16-46GN ECC RAM 磁盘存储器:4*1TB SATA 磁 ...

  6. HOW-TO GEEK SCHOOL

    This How-To Geek School class is intended for people who want to learn more about security when usin ...

  7. 在kali linux之下 下载并解压的文件名呈现乱码 解决方案

    从Linux往 windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名中文编码默认为GBK,而Linux中默认 ...

  8. Pandas的排序和排名(Series, DataFrame) + groupby

    根据条件对数据集排序(sorting)也是一种重要的内置运算.要对行或列索引进行排序(按字典顺序), 可使用sort_index 方法, 它将返回一个已排序的新对象: 而DataFrame, 则可以根 ...

  9. HttpComponents-Core 学习

    HttpComponents-Core 学习 官方文档:http://hc.apache.org/httpcomponents-core-4.4.x/tutorial/html/index.html ...

  10. Python中的高级turtle(海龟)作图

    在Python里,海龟不仅可以画简单的黑线,还可以用它画更复杂的几何图形,用不同的颜色,甚至还可以给形状填色. 一.从基本的正方形开始 引入turtle模块并创建Pen对象: >>> ...