《快学scala》Chapter 3 数组相关操作

最近在学这本书,没有java基础,根据博主(我是一个粉刷匠)编写课后题,第三章中博主多道题目运用了类,小白才疏学浅尚不清楚。用自己的方法,写了几个题。

3.1 编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间。

class array{
  def arr(args: Array[Int]){
    getArr(20).foreach(println)
  }
  def getArr(n: Int):Array[Int]={
    val a = new Array[Int](n)
    val rand = new scala.util.Random()
    for(i <- a)yield rand.nextInt(n)
  }
}
object test {
  def main(args: Array[String]){
    val s = new array
    s.arr(Array())
  }
}

3.2 编写一个循环,将整数数组中相邻的元素置换,例如,Array(1,2,4,5,6)经过置换后变为Array(2,1,5,4,6)

object convert {
  def main(args: Array[String]): Unit = {
    val s = Array(4,5,6,7,8)
    for (i <- 0 until (s.length-1,2)){   /*若i取到s.length-1,当数组中元素个数为奇数时,i为偶数,s(i+1)为空*/
      val t = s(i)
      s(i) = s(i+1)
      s(i+1) = t
    }
    s.foreach(println)
  }
}

3.3 重复前一个练习,不过这一次生成一个新的值交换过的数组。用for/yield

object yield_convert {
  def main(args: Array[String]): Unit = {
    val s = Array(4, 5, 6, 7, 8)
    val result = {
      for(i <- 0 until s.length)yield {
        if (i % 2 == 0 & i < s.length-1){/*当i为偶数时进行转换,当i为奇数时,直接将原数组元素复制给新数组*/
          val t = s(i)
          s(i) = s(i+1)
          s(i+1) = t
        }
        s(i)
      }
    }
    result.foreach(println)
  }
}

3.4 给定一个整数数组,产出一个新的数组,包含数组中的所有正值,以原有顺序排列,自后的元素是所有零或负值,以原有序列排列

import scala.collection.mutable.ArrayBuffer
object positive_negative {
  def main(args: Array[String]): Unit = {
    val s = Array(3,5,-2,0,6,7,8)
    val a = new ArrayBuffer[Int]()
    a ++= (for(i <- s if i>0)yield i)
    a ++= (for(i <- s if i<= 0)yield i)
    a.foreach(println)
  }
  }

其他题目即可按照(我是一个粉刷匠)博主的文章学习:http://www.cnblogs.com/yiruparadise/p/5519649.html

问题:

1. java.util.TimeZone.getAvailableIDs

2.java.awt.datatransfer

posted @ 2018-01-08 15:32  AryaStark  阅读(209)  评论(0编辑  收藏  举报