Scala数组操作

<pre name="code" class="plain">//操作实例
object ArrayOperation {
  def main(args: Array[String]) = {
    val c = Array(2, 3, 5, 7, 11)
    for (i <- 0 until c.length)
      println(i + ":" + c(i))


    val result = for (elem <- c) yield 2 * elem
    for (elem <- c if elem % 2 == 0) yield 2 * elem //for() yield :产生一个数组,原数组c没有发生改变
    c.filter(_ % 2 == 0).map(2 * _)
    for (i <- 0 until result.length)
      println(i + ":" + result(i))


    println(Array(1, 7, 2, 9).sum) //数组求和
    println(ArrayBuffer("Mary", "had", "a", "little", "lamb").max) //求组数中最大长度字符串


    /*
      * 数组排序
      */
    val d = ArrayBuffer(1, 7, 2, 9)//ArrayBuffer:长度可变
    val bSorted = d.sorted
    for (i <- 0 until d.length)
      print(d(i) + " ")
    println
    /*
     * 快排
     */
    val e = Array(1, 8, 4, 2)//Array:长度固定
    scala.util.Sorting.quickSort(e)
    for (i <- 0 until d.length)
      print(d(i) + " ")
    println


    var s = e.mkString("and") //在数组元素中间添加指定字符串,同一个数组中数值型和字符串可以并处
    for (i <- 0 until s.length)
      print(s(i))
    println


    var t = e.mkString("<", ",", ">") //def mkString(start: String,sep: String,end: String): String
    for (i <- 0 until t.length)
      print(t(i) + " ")
    println


    //矩阵
    val matrix = Array.ofDim[Double](3, 4)
    matrix(2)(1) = 42
    for (i <- 0 to 2) {
      for (j <- 0 to 3) {
        print(matrix(i)(j) + " ")
      }
      println
    }


    val triangle = new Array[Array[Int]](10)
    for (i <- 0 until triangle.length)
      triangle(i) = new Array[Int](i + 1)
    for (i <- 0 until triangle.length) {
      for (j <- 0 until triangle(i).length) {
        print(triangle(i)(j) + " ")
      }
      println
    }
  }
}
//运行结果
0:2
1:3
2:5
3:7
4:11
0:4
1:6
2:10
3:14
4:22
19
little
1 7 2 9 
1 7 2 9 
1and2and4and8
< 1 , 2 , 4 , 8 > 
0.0 0.0 0.0 0.0 
0.0 0.0 0.0 0.0 
0.0 42.0 0.0 0.0 
0 
0 0 
0 0 0 
0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 0 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值