快学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)
  }
}
快学Scala PDF第二版》是一本非常实用的Scala编程入门指南。本书涵盖了Scala的基本概念、核心语法、函数式编程、面向对象编程、并发编程等多个方面的内容,适合初学者和有一定编程基础的读者阅读。 本书第一部分介绍了Scala的基本概念和语法,包括变量、数据类型、函数、类和对象等内容,帮助读者快速入门并掌握Scala的基础知识。第二部分介绍了Scala的函数式编程特性,包括高阶函数、匿名函数、闭包等,帮助读者理解函数式编程的思想和应用。第部分介绍了Scala的面向对象编程特性,包括类的定义、继承、多态等,帮助读者掌握面向对象编程的基本原理和技巧。第四部分介绍了Scala的并发编程特性,包括并发基础、线程、并发集合等,帮助读者理解并发编程的概念和应用。 本书还通过大量实例和案例帮助读者加深对Scala的理解和掌握,让读者能够通过实际练习提升编程能力。此外,本书还介绍了Scala的一些高级特性和应用场景,如模式匹配、解构、隐式转换等,帮助读者更深入地学习和应用Scala编程语言。 总的来说,《快学Scala PDF第二版》是一本很不错的Scala编程入门书籍,内容丰富、通俗易懂,适合广大学习者阅读。希望读者能够通过阅读本书,快速掌握Scala编程的基础知识,并能够灵活运用到实际项目中去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值