快学scala(三)

3.1 scala 实现0(包含)到n(不含n)的随机数

import scala.util.Random

object quic_scala_ch3_1{

  def createRandomNumber(n:Int):Unit = {
    val rand = new Random()
    val arr = new Array[Int](n)
    for (i <- arr )
      println(rand.nextInt(n))
  }

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

3.2 交换相邻元素

import scala.util.Random


object quic_scala_ch3_1{
  def exchangeNeighborElement(n:Array[Int]):Unit = {
      for (i <- 0 until (n.length-1, 2)){
        val tmp = n(i)
        n(i) = n(i+1)
        n(i+1) = tmp
      }
  }

  def main(args: Array[String]): Unit
  =
  {
    val arr = Array(10,9,8,7,6)
    exchangeNeighborElement(arr)
    arr.foreach(print)
  }

}


3.3 for/yield 实现3.2 

import scala.util.Random


object quic_scala_ch3_1{


  def exchangeNeighborElement(n:Array[Int]):Unit = {
      for (i <- 0 until (n.length-1, 2)) yield {
        val tmp = n(i)
        n(i) = n(i+1)
        n(i+1) = tmp
      }
  }


  def main(args: Array[String]): Unit
  =
  {
    val arr = Array(10,9,8,7,6)
    exchangeNeighborElement(arr)
    arr.foreach(print)
  }

}


3.4 数组排序,正数-0-负数

import scala.collection.mutable.ArrayBuffer
import scala.util.Random

object quic_scala_ch3_1{

  def sort(n:Array[Int]):Unit = {
        val b = new ArrayBuffer[Int](n.length)
        b ++= (for (i<- n if i >0) yield i)
        b ++= (for (i<-n if i == 0) yield i)
        b ++= (for (i<-n if i < 0) yield i)
      }

  def main(args: Array[String]): Unit
  =
  {
    val arr = Array(-10,9,-8,7,6,0,-3,0)
    sort(arr)
    arr.foreach(println)  }
}

3.5 计算Array[Double]的平均值

import scala.collection.mutable.ArrayBuffer
import scala.util.Random

object quic_scala_ch3_1{

  def sort(n:Array[Double]):Double = {
        var a = 0.0
        for (i <- n){
          a += i
        }
        val mean_n = 1.0*a/(n.length)
        return mean_n
      }

  def main(args: Array[String]): Unit
  =
  {
    val arr = Array(-10.2,9,-8,7,6,0,-3,0)
    val mean_n = sort(arr)
    println(mean_n)
  }
}

3.6 Array[Int] 和ArrayBuffer[Int]反序排列

object quic_scala_ch3_1{

  def sort(n:Array[Int]):Array[Int] = {
        val arr = new Array[Int](n.length)
        for (i <- 0 until n.length){
          arr(i) = n((n.length)-1-i)
        }
    return arr
      }

  def main(args: Array[String]): Unit = {
    val arr = Array(-10,9,-8,7,6,0,-3,0)
    val reverArr = sort(arr)
    reverArr.foreach(println)
  }
}
import scala.collection.mutable.ArrayBuffer

object quic_scala_ch3_1{

  def sort(n:ArrayBuffer[Int]):ArrayBuffer[Int] = {
      return n.reverse
      }

  def main(args: Array[String]): Unit = {
      val arr = ArrayBuffer(-10,9,-8,7,6,0,-3,0)
      val arr_buffer = sort(arr)
      arr_buffer.foreach(println)
  }
}

3.7 去掉数组重复项

object quic_scala_ch3_1{

  def delDup(n:Array[Int]):Array[Int] = {
      return n.toSet.toArray
      }

  def main(args: Array[String]): Unit = {
      val arr = Array(-10,9,-8,7,6,0,-3,0)
      val arrDup = delDup(arr)
      arrDup.foreach(println)
  }
}

3.8 数组缓冲,移除除第一个负数以外的所有负数

import scala.collection.mutable.ArrayBuffer

object quic_scala_ch3_1{

  def delEle(n:ArrayBuffer[Int]):ArrayBuffer[Int] = {
      val b = new ArrayBuffer[Int]()
      for (i <- 0 until n.length) {
          if (n(i) < 0) {
              b += i
          }
      }
              val b_re = b.reverse
      for (i<- 0 until (b_re.length-1)){
          n.remove(b_re(i))
      }
      return n
      }

  def main(args: Array[String]): Unit = {
      val arr = ArrayBuffer(-10,9,-8,7,6,0,-3,0)
      delEle(arr).foreach(println)
  }
}

猜你喜欢

转载自blog.csdn.net/woai8339/article/details/80337100