相关文章推荐
眉毛粗的电梯  ·  清华深度学习新模型,计算T细胞受体和表位之间 ...·  2 年前    · 
冲动的红金鱼  ·  在Google Colab中无法解压·  2 年前    · 
苦恼的伤疤  ·  概觀:詳細層級運算式 - Tableau·  3 年前    · 
机灵的炒面  ·  条码打印三 - ...·  3 年前    · 
开朗的长颈鹿  ·  Unity AR SDK正式上线倒计时 ...·  3 年前    · 
Code  ›  A scala exercise a day 1 - 且听书吟
array arraybuffer scala
https://yufan.me/posts/a-scala-exercise-a-day-1
开朗的楼梯
1 年前

且听书吟

  • 首页
  • 分类
  • 关于
  • 留言
  • 友链
扫码加我微信好友

微信

且听书吟

A scala exercise a day 1

2016-11-16 18:44 Scala

mocha ドラム水槽

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)
微信扫一扫 分享朋友圈

在微信中请长按二维码

评论 (3)
头像
 
推荐文章
眉毛粗的电梯  ·  清华深度学习新模型,计算T细胞受体和表位之间的相互作用构象_预测_序列_水平
2 年前
冲动的红金鱼  ·  在Google Colab中无法解压
2 年前
苦恼的伤疤  ·  概觀:詳細層級運算式 - Tableau
3 年前
机灵的炒面  ·  条码打印三 - Zebra最全ZPL语言指令解析 - 磨砺 - 博客园
3 年前
开朗的长颈鹿  ·  Unity AR SDK正式上线倒计时 全面开放百度AR核心能力
3 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号