zoukankan      html  css  js  c++  java
  • Scala编程入门---数组操作之Array.ArrayBuffer以及遍历数组

    在Scala中,Array代表的含义与Java类似,也是长度不可改变的数组。此外,由于Scala与java都是运行在JVM中,双方可以互相调用,因此Scala数组底层实际上是java数组。列如字符串数组java的String[],整数的数组int[].

    val a = new Array[Int](10)
    
    val a = new Array[String](10) 

    可以直接使用Array()创建数组,元素类型自动推断

    val a = Array("Hello","world")
    
    a(0) ="hi"
    
    val a = Array("Hello",30)
    
    a:
    
    Array[Any]("Hello",30)

    ArrayBuffer:

    在Sacla中,如果需要类似于JAVA中的ArrayList这种可变长度的集合类,则可以使用ArrayBuffer.

    #如果不想每次都是用完全限定名,则可以预先导入ArrayBuffer类
    import scala.collection.mutable.ArrayBuffer
    //使用ArrayBuffer的方式可以创建一个空的ArrayBuffer
    val b = ArrayBuffer[Int]()
    //使用+=操作符,可以添加一个元素,或者多个元素
    //这个语法必须谨记在心!因为Sprak源码里大量使用了这种集合操作语法!
    b+=1 b+=(2,3,4,5) //使用++=操作符,可以添加一个元素,或者多个元素 b++=Array(6,7,8,9) //使用trimEnd()函数,可以从尾部截断指定个数的元素 b.trimEnd(5)
    //使用insert()函数可以在指定位置插入元素
    //但是这种操作效率很低,因为需要移动指定位置后的所有元素
    b.insert(5,6)
    b.insert(6,7,8,9,10)
    //使用remove()函数可以移除指定位置元素
    b.remove(1)
    b.remove(1,3)
    //Array与ArrayBuffer可以互相进行转换
    b.toArray
    a.toBuffer

     遍历Array和ArrayBuffer

    //使用for循环和until遍历Array/ArrayBuffer
    /使用until是RichInt提供的函数
    for(i <- 0 until b.length)
     println(b(i))
    //跳跃遍历Array/ArrayBuffer
    for(i <- until (b.length,2))
    println(b(i))
    //从尾部遍历Array/ArrayBuffer
    for(i <- (0 until b.length).reverse)
    print(b(i))
    //使用"增强型for循环" 遍历Array/AraayBuffer
    for(e <- b)
    print(e)

    数组常见的操作:

    //数组元素求和
    val a = Array(1,2,3,4,5)
    val sum = a.sum
    //获取数组最大值
    val max = a.max
    //对数组进行排序
    scala.util.Sorting.quickSort(a)
    //获取数组中的所有元素类容
    a.mkString
    a.mkString(",")
    a.mkString("<",",",">")
    
    //toString函数
    a.toString
    b.toString
  • 相关阅读:
    《敏捷软件需求》阅读笔记三
    《敏捷软件需求》阅读笔记二
    《敏捷软件需求》阅读笔记一
    《需求工程-软件建模与分析》阅读笔记三
    《需求工程-软件建模与分析》阅读笔记二
    《需求工程-软件建模与分析》阅读笔记一
    C#.NET程序设计实验三实验报告
    C#.NET程序设计实验二实验报告
    C#.NET程序设计实验一实验报告
    oracle——存储数据时的编码问题
  • 原文地址:https://www.cnblogs.com/yeszero/p/6945834.html
Copyright © 2011-2022 走看看