scala 之 数组

package com.scalaxuexi
//首先导入scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer
object ArrayOps {
  def main(args: Array[String]): Unit = {
    //声明数组
    val nums = new Array[Int](10)
    val a = new Array[String](10)
    val s = Array("Hello","World") //初始化数组,scala可以根据类型进行推到
    s(0) = "goodBye"
    //上面的数组都是定长数组,要么指定个数,要么指定长度。
    //创建可变数组
    val b = ArrayBuffer[Int]()
    b += 1
    b +=(1,2,3,5)
    b ++= Array(8, 13, 21)
    print( b)
   
    b.trimEnd(5) //移除后面5个
    b.insert(2,6)  //在下标为2的位置插入6
    b.insert(1,2,3) //在下标为1的位置插入2,3
    b.remove(2,3)   //从下标为2的位置移除3个元素
    b.remove(2)     //移除下标为2 的元素
    b.toArray       //把可变数组变为不变数组
   
    for (i <- 0 until a.length) //对所有元素进行遍历,a为空,所以结果也为空
      println(i + ":" + a(i))
     
    val  c =Array(2,3,5,7,11) // 不可变数组
    val  result = for (elem <- c) yield 2* elem  //循环遍历每个结果之后再乘2
    for (elem <- c if elem % 2 == 0) yield 2*elem  //
    c.filter( _% 2 == 0).map(2*_)    //和 上面 是一样的  _ 表示占位符,每次循环判断, 也是比较流行的操作
   
    Array(1,7,2,9).sum     // 求数组的结果  
   
    ArrayBuffer("hgjkgkg","gfjjk","q","bh","hjgjh").min //求求字母的最小值
    ArrayBuffer("hgjkgkg","gfjjk","q","bh","hjgjh").sorted// 对数组排序
   
   
    val e = Array(1,7,2,9)
     e.mkString("and")  // and 进行连接
     e.mkString("<",",",">") // 两边<>,中间用,连接  res: String = <1,7,2,9>
    
     //定义二维数组
     val matrix = Array.ofDim[Double](3,4)  //> matrix  : Array[Array[Double]] = Array(Array(0.0, 0.0, 0.0, 0.0), Array(0.0,
                                                  //|  0.0, 0.0, 0.0), Array(0.0, 0.0, 0.0, 0.0))
     matrix(2)(1) = 42 // 赋值
    
    
     val triangle = new Array[Array[Int]](10)
     for (i <- 0 until triangle.length)
       triangle(i) = new Array[Int](i + 1)     //> result: Array[Array[Int]] = Array(Array(0), Array(0, 0), Array(0, 0, 0), Arra
                                                             //| y(0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0, 0), Array(0, 0, 0,
                                                             //|  0, 0, 0, 0), Array(0, 0, 0, 0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0, 0, 0, 0, 0
                                                            //| ), Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
  
      
    
    
  }
     
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值