当前位置:首页 > 开发 > 编程语言 > Scala > 正文

Scala之数组

发表于: 2014-11-16   作者:come_for_dream   来源:转载   浏览次数:
摘要: Scala数组数组是最常用的收集一系类元素的结构,其中定长数组我们使用Array,变长数组我们使用ArrayBuffer1.创建定长数组         定长数组的声明: val a =new Array[Int](10)     数组在声明的时候若对数组不给定值,   

Scala数组
数组是最常用的收集一系类元素的结构,其中定长数组我们使用Array,变长数组我们使用ArrayBuffer
1.创建定长数组

   

    定长数组的声明:

 val a =new Array[Int](10)

    数组在声明的时候若对数组不给定值,
    我们也可以在声明的时候给定值(值的类型要相同),Scala可以自动的进行类型和长度的判断。
    例如:

 

val b=Array(1,7,2,8,3)

    那么Int型的数组将初始化为0
    String型的数组将被初始化为null


    当然我们也可以通过下面这种方式连接两个定长数组创建一个新的数组,

 

    当时经过本人测试下面这种方式只能生成一个新的数组
   

val array = Array(1, 4, 2, 3)
val combine =array ++ Array(1, 2)

   
    我们在遍历数组的时候可以使用for循环
    例如:
  

 for (i <- b) {
      println(i)
    }

 
    当然我们也可以使用更高端一点(函数式)的打印方法
  

 b.foreach(x => println(x))

 

    我们也可以进行数组转换
  

 for(elem <- b if elem %2==0) yield 2*elem

 
    结果将返回一个新的数组,意思是获得数组中的偶数并把该数乘以2组成一个新的数组
    当然我们也可以使用以下更加方便,这种是典型的函数编程方式
 

  b.filter(_%2==0).map(_*2)

 
    甚至我们可以这样
  

 b.filter{_%2==0}.map{_*2}

 



2.变长数组的使用
       val C=new ArrayBuffer[T]()声明一个全空的数组,数组长度为0
       C+= e1             表示在数组尾部增加一个类型为T的元素e1          :ArrayBuffer(e1)
       C+=(e2,e3)        表示在数组尾部增加一个类型为T的元素e2,e3    :ArrayBuffer(e1,e2,e3)
       C++=Array(e2,e3)    表示在数组尾部增加集合Array(e2,e3)            :ArrayBuffer(e1,e2,e3,e2,e3)
       C.trimEnd(1)        表示移除最后一个元素                        :ArrayBuffer(e1,e2,e3,e2)





3.数组的常用算法
    3.1 求和:     b.sum
    3.2 求最大值: b.max
        排序,不会对原数组进行改变而是返回一个经过排序的数组:    
              

b.sorted(_<_)   b.sorted(_>_)

 
    3.3 当然我们也可以直接在原数组上进行排序,但是不能对数组缓冲排序(变长数组)
     

  scala.util.Sorting.quickSort(b)

 
    3.4 我们显示数组中的内容我们利用mkString方法
      

 b.mkString("<",",",">")

 
        那么就会输出:
        <1,7,2,8,3>

 

 

 

Scala之数组

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
IO 1.打开Source.fromFile(filename,encoding) 2.关闭source.close 3.获取所有行,getLines 4.迭代
IO 1.打开Source.fromFile(filename,encoding) 2.关闭source.close 3.获取所有行,getLines 4.迭代
IO 1.打开Source.fromFile(filename,encoding) 2.关闭source.close 3.获取所有行,getLines 4.迭代
scala解释器是编写scala表达式和程序的交互式“shell”。只要在解释器里输入表达式,它就能计算并打
因为scala是JVM上的语言,所以我们首先要安装Java运行环境。从oracle官网下载:jdk-7u21-windows-x3
005-Scala数组操作实战详解 Worksheet的使用 交互式命令执行平台 记得每次要保存才会出相应的结果
前面我们已经安装了:Java1.7版本与scala2.10.1版本,那以我们这里就选择eclipse4.3(Kepler),最好
数组 一、什么是数组? 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据
数组与其他种类的容器之间的区别主要有三方面:效率、类型和保存基本数据的能力。现在Java中的容器
Intellij IDEA众所周知,intellij idea的使用性非常好,是一个非常优秀的IDE。而更令人振奋的是它在
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号