07-scala入门—数组

2019-06-18  本文已影响0人  kang_james

scala数组

scala语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编辑应语言来说都是重要的数据结构之一。
声明数组变量并不是声明number0、number1、....、number99一个个单独的变量,而是声明一个就像numbers这样的变量,后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。
数组的第一个元素索引为0,最后一个元素的索引为元素总数减1。

声明数组

语法格式如下:
var z:Array[String] = new ArrayString

var z = new ArrayString
以上语法中,z 声明一个字符串类型的数组,数组长度为 3 ,可存储 3 个元素。我们可以为每个元素设置值,并通过索引来访问每个元素,索引从0开始

数组处理

数组的元素类型和数组的大小都是都确定的,所有当处理数组元素时候, 我么通常使用for循环示例:

bject ForTest {

  def main(args: Array[String]): Unit = {
    var numlist = Array(1.9,2.9,3.4,3.5)
    for (x <- numlist)
      println(x)
    //计算数组中所有元素的和
    var total = 0.0
//    for (x <- numlist )
//      total += x
//    println (total)
    for (i <- 0 to numlist.length -1)
      total += numlist(i)
    println (total)
    //查找数组中最大的元素
    var max = numlist(0)
    for (i <- 1 to numlist.length -1){
      if (numlist(i) > max)
        max = numlist(i)
    }
    println("最大值为:" + max)
  }

多维数组

多维数组一个数组中的值可以使另一个数组,另一个数组的值也可以是一个数组,矩阵和表格是我们常见的二维数组。
一下是一个定义二维数组的示例:
var mymatrix = ofDimInt

import Array._
object OfDimTest {

  def main(args: Array[String]): Unit = {
    var mytrix = ofDim[Int](3,3)

    //创建矩阵
    for (i <- 0 to 2){
      for (j <- 0 to 2){
        mytrix(i)(j) = j
      }
    }

    // 打印二维数组
    for(i <- 0 to 2){
      for (j <- 0 to 2){
        print(" " + mytrix(i)(j))
      }
      println()
    }
  }
}

合并数组

concat()

object ConcatTest {
  def main(args: Array[String]): Unit = {

    var arr1 = Array(1.9, 2.9, 3.4, 3.5)
    val arr2 = Array(8.9, 7.9, 0.4, 1.5)

    var arr3 = Array.concat(arr1,arr2)
    
    //输出每个元素
    for( x <- arr3){
      println(x)
    }
  }
}

创建区间数组

range(),最后一个参数为步长,默认为1

object RangeTest {

  def main(args: Array[String]): Unit = {

    var arr1 = Array.range(10,20,2)
    var arr2 = Array.range(10,20)

    //输出所有数组元素
    for (x <- arr1){
      print(" " + x)
    }

    for (x <- arr2){
      print(" " + x)
    }
  }
}

可变数组操作

object ArrayBufferTest {

  def main(args: Array[String]): Unit = {
    var arrayBuffer : ArrayBuffer[Int] = ArrayBuffer(1,2,3)

    //在索引为0的位置插入参数
    arrayBuffer.insert(0,8,9,0)
    //从索引3删除2个元素
    arrayBuffer.remove(3,2)

    //转换成定长数组
    val arr = arrayBuffer.toArray
    for (i <- arrayBuffer) println(i)
  }
}

数组的常用操作

var array = Array(1, 2, 3, 4, 5, 6)
    println(array.sum)
    println(array.max)
    println(array.min)
    println(array.toString)
    println(array.mkString(","))
    println(array.mkString("<", ",", ">"))

数组操作的API

使用前需要先 import Array._

上一篇 下一篇

猜你喜欢

热点阅读