zoukankan      html  css  js  c++  java
  • Scala数组

    1.定长数组

    定长数组:指长度不可变的数组Array。

    1.1第一种方式:

    先声明一个数组,后初始化该数组:

    scala> val array = new Array[Double](5)
    array: Array[Double] = Array(0.0, 0.0, 0.0, 0.0, 0.0)
    

    赋值方式:array(index) = value

    1.2第二种方式:

    scala> val array = Array(1, 2, 3, 4, 5)
    array: Array[Int] = Array(1, 2, 3, 4, 5)
    

    1.3第三种方式,Array.fill(length)(value):

    scala> val array = Array.fill(5)(3.5)
    array: Array[Double] = Array(3.5, 3.5, 3.5, 3.5, 3.5)
    

    如果fill第二个参数只写一个值的话,那么该数组的所有元素都是该值,但是如果第二个参数是一个iterator或者random,那么数组就会被赋值为它们的值。

    scala> val array = Array.fill(2)(math.random)
    array: Array[Double] = Array(0.2810736748034083, 0.7261142068882558)
    

    1.4第四种方式,

    ofDim[T](length)
    
    
    scala> val array = Array.ofDim[Double](5)
    array: Array[Double] = Array(0.0, 0.0, 0.0, 0.0, 0.0)
    

    赋值方式:array(index) = value

    2.变长数组

    变长数组:指数组长度可以变化。

    声明一个空的数组,此时数组没有任何元素,且不能以下标索引赋值:

    val array = new ArrayBuffer[T]()
    

    在数组尾部增加一个类型为T的元素e1:

    array += e1
    

    在数组尾部增加一个类型为T的元素e1、e2:

    array += (e1, e2)
    

    在数组尾部增加一个类型为T的数组:

    array ++= Array(e1, e2)
    

    在第index元素后插入e1:

    array.insert(index, e1)
    

    在第index元素后插入e1、e2:

    array.insert(index, e1, e2)
    

    移除第index元素后的n个元素:

    array.remove(index, n)
    

    3.多维数组

    3.1定长多维数组

    第一种方式:

    val array = new Array[Array[Int]](5) 
    scala> val array = new Array[Array[Int]](5)
    array: Array[Array[Int]] = Array(null, null, null, null, null)
    

    此时,内部的每个数组长度是不一样的,类似于Java中的如下定义:

    int[][] array = new int[2][];
    

    第二种方式(推荐):

    用ofDim[T](rows, column, height,...)函数定义,但最多可以定义五维数组,不过已经够用了。
    
    scala> val array = Array.ofDim[Int](2,3)
    array: Array[Array[Int]] = Array(Array(0, 0, 0), Array(0, 0, 0))
    

    3.2变长多维数组

    scala> val arr1 = new ArrayBuffer[ArrayBuffer[Int]]()
    arr1: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer()
    

    4.定长数组和变长数组的转换

    定长数组imarray转换成变长数组array:

    array = imarray.toBuffer
    

    变长数组array转换成定长数组imarray:

    imarray = array.toArray
    

    当定/变长多维数组相互转换时,只转换最外面那层数组:

    scala> val array = Array(Array(1,2),Array(3,4))
    arr: Array[Array[Int]] = Array(Array(1, 2), Array(3, 4))
     
    scala> array.toBuffer
    res14: scala.collection.mutable.Buffer[Array[Int]] = ArrayBuffer(Array(1, 2), Array(3, 4))
    
  • 相关阅读:
    JAVA整理05---手写简单的linkedlist来学习linkedlist
    JAVA整理04---手写简单的arraylist来学习arraylist
    java整理03--常用类
    java整理02--面向对象深入
    每周学习进度
    软件工程课程总结
    梦断代码阅读笔记03
    scrum第二阶段项目冲刺_day10
    scrum第二阶段项目冲刺_day09
    scrum第二阶段项目冲刺_day08
  • 原文地址:https://www.cnblogs.com/aixing/p/13327331.html
Copyright © 2011-2022 走看看