美文网首页
三:scala(3)数组

三:scala(3)数组

作者: _兰陵笑笑生 | 来源:发表于2019-07-12 22:28 被阅读0次

    在本章中,你将会学到如何在Scala中操作数组。

    开始用数组。 本章的要点包括:
    1.若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer。
    2.提供初始值时不要使用new。
    3.用()来访问元素。
    4.用for (elem <- arr)来遍历元素。
    5.用for (elem<- arr if ... ) yield ...来将原数组转型为新数组。
    6.Scala数组和Java数组可以互操作;
    7.用ArrayBuffer,使用scala.collection.
    8.JavaConversions中的转换函数。

    定长数组

    val nums = new Array[Int] (10)
    10个整数的数组,所有元素初始化为0

    变长数组:数组缓冲

    val b = ArrayBuffer [Int] () 
    //或者new ArrayBuffer[Int] 
    // 一个空的数纽缓冲,准备存放整数
    b += 1 
    II ArrayBuffer(l) 
    // 用+=在尾端添加元素
    b += ( 1, 2 , 3 , 5) 
    //ArrayBuffer(l, 1 , 2, 3, 5) // 在尾端添加多个元素, 以括号包起来
    b ++= Array(S, 13, 21) 
    // Arr ‘ayBuffer (1, 1, 2, 3, 5, 8, 13, 21) 
    // 你可以用++=操作符追加任何集合
    b.trimEnd(S) 
    //ArrayBuffer(l, 1, 2) //移除最后5个元素
    

    常用算法

    Array(l , 7 , 2, 9) . sum 
    
    ArrayBuffer (” Mary'’,”had”,”a ”,”little ”,”lamb” ) .max 
    
    val b = ArrayBuffer(l, 7, 2, 9) 
    val bSorted = b.sorted 
    // b没有被改变; bSorted是ArrayBuffer(l , 2 , 7 , 9) 
    //你还可以提供一个比较函数,不过这时你应该用sortWith方法:
    val bDescending = b . sortWith( > )// ArrayBuffer(9, 7 , 2 , 1) ```
    
    ###多维数组
    
    和Java一样,多维数组是通过数组的数组来实现的。 举例来说, Double的二维数 组类型为Array[Array[Double]] 。 要构造这样一个数组,可以用ofDim方法:
    val matrix = Array.ofDim[Double] (3 , 4) // 三行四列
    要访问其中的元素,可使用两对圆括号:
    matrix(row) (column) = 42 
    

    相关文章

      网友评论

          本文标题:三:scala(3)数组

          本文链接:https://www.haomeiwen.com/subject/wiqukctx.html