1、编写一段代码,将 a 设置为一个 n 个随机整数的数组,要求随机数介于 [0, n)
之间。
def randomArray(n: Int) : Array[Int] = {
(for (i <- 0 until n) yield (math.random * n).toInt).toArray
}
2、编写一个循环,将整数数组中相邻的元素置换。例如,Array(1, 2, 3, 4, 5)
经过置换之后变为 Array(2, 1, 4, 3, 5)
。
def transferArray(array: Array[Int]) : Array[Int] = {
for (i <- array.indices if i % 2 == 1) {
val temp = array(i)
array(i) = array(i - 1)
array(i - 1) = temp
}
array
}
3、重复前一个练习,不过这次生成一个新的值交换过的数组。用 for/yield
。
def transferArray(array: Array[Int]) : Array[Int] = {
(for (i <- array.indices) yield {
i % 2 match {
case 1 => array(i - 1)
case 0 => if (i + 1 == array.length) array(i) else array(i + 1)
}
}).toArray
}
4、给定一个整数数组,产出一个新的数组,包含元素组中的所有正值,以原有顺序排列,之后的元素是所有的零或负值,以原有顺序排列。
def sortArray(array: Array[Int]) : Array[Int] = {
val (left, right) = array.partition(_ > 0)
left ++ right
}
5、如何计算 Array[Double]
的平均值?
def arrayAverage(array: Array[Double]) : Double = {
array.sum / array.length
}
6、如何重新组织 Array[Int]
的元素将它们以反序排列?对于 ArrayBuffer[Int]
你又会怎么做呢?
def reverseAverage(array: Array[Int]) : Array[Int] = {
for (i <- array.indices if i < array.length / 2) {
val temp = array(i)
array(i) = array(array.length - i - 1)
array(array.length - i - 1) = temp
}
array
}
对于 ArrayBuffer
如下
def reverseAverage(array: ArrayBuffer[Int]) : ArrayBuffer[Int] = {
array.reverse
}
7、编写一段代码,产出数组中的所有值,去掉重复项。
def distinctAverage(array: Array[Int]) : Array[Int] = {
array.distinct
}
8、创建一个由 java.util.TimeZone.getAvailableIDs
返回的时区集合,判断条件是它们在美洲。去掉 "America/"
前缀并排序。
val sortedAmericanZone = java.util.TimeZone.getAvailableIDs.filter(_.startsWith("America")).map(_.replaceFirst("America/", "")).sorted
9、引入 java.awt.datatransfer._
并构建一个类型为 SystemFlavorMap
类型的对象: val flavors = SystemFlavorMap.getDefaultFlavorMap().asInstanceOf[SystemFlavorMap]
然后以 DataFlavor.imageFlavor
为参数调用 getNativesForFlavor
方法,以 Scala 缓冲保存返回值。
首先导入包
import java.awt.datatransfer._
import scala.collection.JavaConversions._
import scala.collection.mutable.Buffer
然后编码
val flavors = SystemFlavorMap.getDefaultFlavorMap().asInstanceOf[SystemFlavorMap]
val flavor: Buffer[String] = flavors.getNativesForFlavor(DataFlavor.imageFlavor)
故意的,这个可以设置。
为啥文章页导航的文章缩略图和首页的不一致?
好高深的样子····