快学scala第三章习题答案

合集下载

快学Scala课后习题答案

快学Scala课后习题答案

快学Scala课后习题答案分享⼀个之前做快学Scala的课后习题(2-21章节,19⽆)的Github链接,我把习题的⽂字写在了每个回答的注释上⾯,这样⽅便⼤家对照着看,省的回过头去对照着pdf看了,如果有做的不对的地⽅希望⼤家给予指正。

举⼀个第⼆章节的例⼦,抛砖引⽟:object charpter02 {/** 2.1* ⼀个数字如果为正数,则它的signum为1;* 如果是负数,则signum为-1;* 如果为0,则signum为0.编写⼀个函数来计算这个值* */def signum(x: Int): Int = {if (x > 0) { 1 }else if (x < 0) { -1 }else { 0 }}def signum(x: Int): Int = if (x > 0) 1 else if (x < 0) -1 else 0;def signum(x: Int) = { if (x > 0) 1 else if (x < 0) -1 else 0 }def signum(x: Int) = if (x > 0) 1 else if (x < 0) -1 else 0/** 2.2* ⼀个空的块表达式{}的值是什么?类型是什么?* */// def checkEmptyBlockType() = {// println({});// println({}.getClass())// }def checkEmptyBlockType { println({}); println({}.getClass()) }/** 2.3* 指出在Scala中何种情况下赋值语句x=y=1是合法的。

* (提⽰:给x找个合适的类型定义)*/def checkAssignLegal { var x: Unit = () println("x's type is: " + x.getClass) var y = 1 x = y = 1}/** 2.4* 针对下列Java循环编写⼀个Scala版本:* for(int i=10;i>=0;i–) System.out.println(i);*/def ScalaForeach { // 1.to(10).reverse.foreach { (i: Int) => Predef.println(i) } // 1.to(10).reverse.foreach { i => Predef println i } // 1.to(10).reverse.foreach { i => println(i) } // 1.to(10).reverse foreach { println _ } (1 to 10 reverse) foreach println}/** 2.5* 编写⼀个过程countdown(n:Int),打印从n到0的数字*/def countdown(n: Int) { n match { case n if n >= 0 => { (0 to n reverse) foreach println } case n if n < 0 => { n to 0 foreach println } }}/** 2.6* 编写⼀个for循环,计算字符串中所有字母的Unicode代码的乘积。

2023年Scala常见面试题及答案

2023年Scala常见面试题及答案

Scala常见面试题及答案1.变长参数跟list作为参数的区别变长参数只能作为最后一个形参,变长参数在调用传参时语义更明确。

2.伴生类与伴生对象是什么同一个文件中同名的object和class,可以相互访问彼此的私有变量(但object中若使用 private this标注,则伴生类中无法访问)。

伴生对象中可定义apply方法,目的是通过伴生类的构造函数功能,来实现伴生对象的构造函数功能。

3.如何实现单例模式依靠伴生对象,因为对象的创建是单例的。

4. trait特质是什么可以被多个类继承。

5.A类继承了B类并且继承了C特质、D特质,D特质继承了E类,A在构造时构造器的执行顺序。

执行B的构造器(执行父类构造器),然后是C的构造器(执行继承特质构造器从左到右),执行E 构造器(执行继承特质构造器的父类构造器),执行D构造器,最后是A的构造器。

6.偏函数与偏应用函数的区别偏函数时只处理能与至少一个case相匹配情况下的输入。

偏应用函数是参数不全(调用函数时使用了_)的函数。

7.Scala概述Scala 是一种多范式语言,它一方面吸收继承了多种语言中的优秀特性,一方面又没有抛弃 Java 这个强大的平台,它运行在 Java 虚拟机 (Java Virtual Machine) 之上,轻松实现和丰富的 Java 类库互联互通。

它既支持面向对象的编程方式,又支持函数式编程。

它写出的程序像动态语言一样简洁,但事实上它确是严格意义上的静态语言,相对于Java而言,Scala的代码更为精简(减低犯错),而且功能更为广泛(Scala其实是Scalable Language 的简称,意为可扩展的语言),许多Scala的特性和语法都是针对Java的不足和弱点来设计的。

8.scala语言有什么特点?什么是函数式编程?有什么优点?scala语言集成面向对象和函数式编程。

函数式编程是一种典范,将电脑的运算视作是函数的运算。

与过程化编程相比,函数式编程里的函数计算可以随时调用。

数据结构第三章的习题答案

数据结构第三章的习题答案

数据结构第三章的习题答案数据结构第三章的习题答案在学习数据结构的过程中,习题是巩固知识和提高能力的重要方式。

第三章的习题主要涉及线性表、栈和队列的实现和操作。

本文将对这些习题进行解答,并给出详细的步骤和思路。

1. 第一题要求实现一个线性表的插入操作。

线性表是一种常用的数据结构,它的特点是元素之间存在一对一的关系。

要实现插入操作,首先需要定义线性表的数据结构,可以使用数组或链表来实现。

然后,根据插入位置,将插入位置之后的元素依次后移,为要插入的元素腾出空间。

最后,将要插入的元素放入插入位置。

2. 第二题要求实现一个栈的压栈和出栈操作。

栈是一种后进先出(LIFO)的数据结构,可以使用数组或链表来实现。

压栈操作就是将元素放入栈顶,出栈操作就是将栈顶元素取出并删除。

要实现这两个操作,可以使用一个指针来指示栈顶位置,每次压栈时将指针加一,出栈时将指针减一。

需要注意的是,栈满时不能再进行压栈操作,栈空时不能进行出栈操作。

3. 第三题要求实现一个队列的入队和出队操作。

队列是一种先进先出(FIFO)的数据结构,同样可以使用数组或链表来实现。

入队操作就是将元素放入队尾,出队操作就是将队头元素取出并删除。

与栈不同的是,队列需要维护队头和队尾两个指针。

每次入队时将元素放入队尾,并将队尾指针后移一位;出队时将队头元素取出,并将队头指针后移一位。

需要注意的是,队列满时不能再进行入队操作,队列空时不能进行出队操作。

4. 第四题要求实现一个栈的括号匹配算法。

括号匹配是一种常见的应用场景,例如编程语言中的括号匹配。

要实现这个算法,可以使用栈来辅助。

遍历字符串中的每个字符,如果是左括号,则将其压入栈中;如果是右括号,则将栈顶元素取出并判断是否与右括号匹配。

如果匹配,则继续遍历下一个字符;如果不匹配,则说明括号不匹配,返回错误。

最后,如果栈为空,则说明括号匹配成功;如果栈不为空,则说明括号不匹配,返回错误。

5. 第五题要求使用栈实现一个逆波兰表达式的计算器。

第三章复习题及答案

第三章复习题及答案

第三章复习题及答案1. 简述第三章中提到的主要概念,并给出至少两个例子来说明其应用场景。

答案:第三章主要介绍了数据结构的概念,包括数组、链表、栈和队列等。

例如,数组在处理固定大小的数据集时非常有用,如存储一个班级的学生成绩;链表则适用于数据项频繁插入和删除的情况,比如实现一个动态的购物车。

2. 描述第三章中讨论的算法复杂度,并解释时间复杂度和空间复杂度的区别。

答案:算法复杂度分为时间复杂度和空间复杂度。

时间复杂度关注的是算法执行所需的时间,通常用大O表示法来描述,如O(n)表示随着输入规模的增加,算法执行时间线性增长。

空间复杂度则关注的是算法执行过程中所需的存储空间,例如,一个需要存储所有输入数据的算法可能具有O(n)的空间复杂度。

3. 列举第三章中提到的排序算法,并比较它们的平均时间复杂度。

答案:第三章中提到的排序算法包括冒泡排序、选择排序、插入排序和快速排序。

冒泡排序和选择排序的平均时间复杂度为O(n^2),插入排序的平均时间复杂度也为O(n^2),而快速排序的平均时间复杂度为O(n log n)。

4. 解释第三章中提到的递归算法的工作原理,并给出一个递归算法的例子。

答案:递归算法是一种自我调用的函数,它将问题分解成更小的子问题,直到达到基本情况,然后逐步解决这些子问题以得到原始问题的解。

例如,计算阶乘的函数就是一个递归算法,阶乘函数调用自身来计算较小数字的阶乘,直到达到1,然后返回这些阶乘的乘积。

5. 讨论第三章中提到的动态规划与贪心算法的区别,并给出一个动态规划的例子。

答案:动态规划是一种通过将复杂问题分解为更简单的子问题,并存储这些子问题的解(通常是在表格中)来避免重复计算的方法。

贪心算法则是在每一步选择局部最优解,希望这样的局部最优解能导致全局最优解。

动态规划的例子是斐波那契数列的计算,通过存储已计算的斐波那契数来避免重复计算。

6. 根据第三章的内容,解释什么是图,并描述图的两种基本表示方法。

快学Scala习题解答—第三章数组相关操作

快学Scala习题解答—第三章数组相关操作

快学Scala习题解答—第三章数组相关操作3 数组相关操作3.1 编写⼀段代码。

将a设置为⼀个n个随机整数的数组,要求随机数介于0(包括)和n(不包括)之间random和yield的使⽤Scala代码1. import scala.math.random2.3. def randomArray(n:Int)={4. for(i <- 0 until n) yield (random * n).toInt5. }6.7. println(randomArray(10).mkString(","))3.2 编写⼀个循环,将整数数组中相邻的元素置换。

⽐如,Array(1,2,3,4,5)经过置换后变为Array(2,1,4,3,5)对数组⽅法的使⽤Scala代码1. def reorderArray(arr:Array[Int]):Array[Int]={2. val t = arr.toBuffer3. for(i <- 1 until (t.length,2);tmp = t(i);j <- i - 1 until i){4. t(i) = t(j)5. t(j) = tmp6. }7. t.toArray8. }9.10. println(reorderArray(Array(1,2,3,4,5)).mkString(","))3.3 反复前⼀个练习,只是这⼀次⽣成⼀个新的值交换过的数组。

⽤for/yieldScala代码1. def reorderArray(arr:Array[Int]):Array[Int]={2. (for(i <- 0 until (arr.length,2)) yield if (i + 1 < arr.length) Array(arr(i + 1),arr(i)) else Array(arr(i))).flatten.toArray3. }4.5. println(reorderArray(Array(1,2,3,4,5)).mkString(","))3.4 给定⼀个整数数组,产⽣⼀个新的数组,包括元数组中的全部正值,以原有顺序排列,之后的元素是全部零或负值。

快学scala第八章习题答案

快学scala第八章习题答案

9 继承9.1 扩展如下的BankAccount类,新类CheckingAccount对每次存款和取款都收取1美元的手续费class BankAccount(initialBalance:Double){private var balance = initialBalancedef deposit(amount:Double) = { balance += amount; balance}def withdraw(amount:Double) = {balance -= amount; balance}}9.2 扩展前一个练习的BankAccount类,新类SavingsAccount每个月都有利息产生(earnMonthlyInterest方法被调用),并且有每月三次免手续费的存款或取款。

在earnMonthlyInterest方法中重置交易计数。

9.3 翻开你喜欢的Java或C++教科书,一定会找到用来讲解继承层级的实例,可能是员工,宠物,图形或类似的东西。

用Scala来实现这个示例。

Thinking in Java中的代码Java代码9.4 定义一个抽象类Item,加入方法price和description。

SimpleItem是一个在构造器中给出价格和描述的物件。

利用val可以重写def这个事实。

Bundle是一个可以包含其他物件的物件。

其价格是打包中所有物件的价格之和。

同时提供一个将物件添加到打包当中的机制,以及一个适合的description方法9.5 设计一个Point类,其x和y坐标可以通过构造器提供。

提供一个子类LabeledPoint,其构造器接受一个标签值和x,y坐标,比如:new LabeledPoint("Black Thursday",1929,230.07)9.6 定义一个抽象类Shape,一个抽象方法centerPoint,以及该抽象类的子类Rectangle和Circle。

C++第3章课后习题习题答案

C++第3章课后习题习题答案

第三章习题答案一、单选题1.D2.B3.B4.A5.C6.B7.D8.D9. A 10.D 11.C 12.A 13.B 14. A 15.D 16.A 17.C 18.C 19.C 20.B二、填空题1.条件、循环2.4.03.!,&&,||(非,与,或)4.0,1,15.(y%4==0&&y%100!=0)||(y%400)6.(x<0&&y<0&&z>=0)||(x<0&&y>=0&&z<0)||(x>=0&&y<0&&z<0)7.ch>='A'&&ch<='Z'8.OK!NO!ERROR!9.x>=y&&y>=z10.Z11.2 1 112.1 0 013.do while14.switch 循环15.2 016.517.1118.019.420.254三、读程序结果1. CD(ch1=’C’,ch2=’D’)2. *&3. 10,9,11(a=10,b=9,c=10)4. a=2b=15. 1,0,1(a=1,b=0,c=1)6. x=5x=5x=3x=7x=0z=07. 2,0(k=2,b=0)8. 3,1 -1 3 1 -19. 8(a=8)10. 1,-2(a=1,y=-2)四、编程题1.#include<iostream>#include<iomanip>using namespace std;#define PI 3.14159void main(){float r,h;cout<<"输入圆半径、圆柱高:"<<endl;cin>>r>>h;cout<<setiosflags(ios::fixed);cout<<setprecision(2)<<"圆周长是:"<<2*PI*r<<endl;cout<<setprecision(2)<<"圆面积是:"<<PI*r*r<<endl;cout<<setprecision(2)<<"圆球表面积是:"<<4*PI*r*r<<endl;cout<<setprecision(2)<<"圆球体积是:"<<4*PI*r*r*r/3<<endl;cout<<setprecision(2)<<"圆柱体积是:"<<PI*r*r*h<<endl;}2.#include <iostream>using namespace std;int main(){float a,p;int n;cout<<”请输入本金,存款年数,年利率、n”;cin>>a>>n>>p;cout<<”利息为”<<a*p*n<<’\n’;return 0;}3.#include <iostream>#include <iomanip>using namespace std;int main(){cout<<setw(3)<<’*’<<’’<<’*’<<’‘<<’*’<<’\n’;cout<<setw(2)<<’*’<<setw(6)<<’*’<<’\n’;cout<<’*’<<setw(8)<<’*’<<’\n’;cout<<’*’<<’\n’<<’*’<<’\n‘<<’*’<<’\n’<<’*’<<’\n’;cout<<’*’<<setw(8)<<’*’<<’\n’;cout<<setw(2)<<’*’<<setw(6)<<’*’<<’\n’;cout<<setw(3)<<’*’<<’’<<’*’<<’‘<<’*’<<’\n’;return 0;}4.#include<iostream>using namespace std;main(){int a,b;cin>>a>>b;if((a>100)&&(b>100))cout<<"大于100的数是:"<<a<<" "<<b<<endl;else{if(a>100)cout<<"大于100的数是:"<<a<<endl;if(b>100)cout<<"大于100的数是:"<<b<<endl;if((a<=100)&&(b<=100))cout<<"两数之和是:"<<a+b<<endl;}return 0;}5.#include <iostream>using namespace std;main(){int x;cin>>x;if((x%5==0)&&(x%7==0))cout<<"Yes"<<endl;elsecout<<"No"<<endl;return 0;}6.#include <iostream>#include <iomanip>using namespace std;int main(){char letter,letter_new;cout<<”请输入一个小写字母:”;cin>>letter;if(letter>=’a’&&letter<=’m’){letter_new=letter+1;cout<<”变换后的字母为”<<letter_new<<’\n’;}else if(letter>=’n’&&letter<=’z’){letter_new=letter-1;cout<<”变换后的字母为”<<letter_new<<’\n’;}elsecout<<”这不是一个小写字母”<<’\n’;return 0;}7.#include <iostream>#include <iomanip>#include<math.h>using namespace std;int main(){float a,b,c,s;float sin_A,cos_A;cout<<”请输入三角形的三条边:”;cin>>a>>b>>c;if(!((a+b>=c)&&(b+c>=a)&&(a+c>=b)))cout<<”这三条边不能组成一个三角形\n”;else{cos_A=(pow(b,2)+pow(a,2)-pow(c,2))/(2*b*C);sin_A=sqrt(1-pow(cos_A,2));s=b*c*sin_A/2;cout<<”三角形面积:”<<s<<’\n’;}return 0;}8.#include <iostream>using namespace std;void main(){int b;cout<<"请输入一个5位数:"<<endl;cin>>b;if(b/10000==b%10){if((b%10000)/1000==(b%100)/10)cout<<"该数是回文"<<endl;}elsecout<<"该数不是回文!"<<endl;}9.#include <iostream>using namespace std;void main(){int a,b,i,s;cout<<"请输入自然数:"<<endl;cin>>a;for(i=0,s=0,b=1;i<a;i++){s=s+b;b=b+2;}while(s!=a*a*a){s=s+a*2;b=b+2;}b=b-2;cout<<"组成"<<a<<"的立方的"<<a<<"个连续奇数为:"<<endl;for(i=a;i>0;i--){cout<<b-2*(i-1)<<' ';}}10.#include <iostream>using namespace std;main(){int n,i;double average,money;n=0;i=1;money=0;while(i<=100){i=i*2;money=money+i*0.8;n++;}average=money/n;cout<<"苹果个数不超过100的最大值时钱数是:"<<money<<endl<<"平均每天花钱:"<<average<<endl;return 0;}11.#include <iostream>using namespace std;void main(){int i,x,y,z,a[3]={0,0,0};cout<<"输入x,y:"<<endl;cin>>x>>y;cout<<"x^y的最后三位数为:";for(i=0,z=1;i<y;i++){z=z*x;}a[0]=(z%1000)/100;a[1]=(z%100)/10;a[2]=z%10;cout<<a[0]<<a[1]<<a[2];}#include <iostream>using namespace std;void main(){int a=0,b=0,c=0;for(a=0;a<10;a++)for(b=0;b<10;b++)for(c=0;c<10;c++){if(a*100+b*10+c+c*100+b*10+a==1333)cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;}}。

scala课后习题答案

scala课后习题答案

scala课后习题答案Scala课后习题答案Scala是一种多范式编程语言,它结合了面向对象编程和函数式编程的特性。

在学习Scala的过程中,做课后习题是非常重要的,它可以帮助我们巩固所学的知识,提高编程能力。

下面我们来看一些常见的Scala课后习题及其答案。

1. 编写一个函数,计算给定数组的平均值。

```scaladef average(arr: Array[Int]): Double = {if (arr.isEmpty) 0else arr.sum.toDouble / arr.length}```2. 编写一个函数,将给定的字符串列表连接成一个字符串。

```scaladef concatStrings(strings: List[String]): String = {strings.mkString}```3. 编写一个函数,找出给定数组中的最大值和最小值。

```scaladef findMaxAndMin(arr: Array[Int]): (Int, Int) = {(arr.max, arr.min)}```4. 编写一个函数,将给定的整数列表按照奇偶分成两个列表。

```scaladef splitOddEven(nums: List[Int]): (List[Int], List[Int]) = {nums.partition(_ % 2 == 0)}```5. 编写一个递归函数,计算给定数字的阶乘。

```scaladef factorial(n: Int): Int = {if (n <= 1) 1else n * factorial(n - 1)}```以上是一些常见的Scala课后习题及其答案,通过做这些习题可以帮助我们更好地理解和掌握Scala编程语言。

希望大家在学习Scala的过程中能够多加练习,不断提升自己的编程能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

\1. 编写一段代码,将a 设置为一个n 个随机整数的数组,要求随机数介于0和n 之间。

1 2 3 4 5 6 7 8 9 10 11 12 object App{def main(args: Array[String]) {makeArr(10).foreach(println);}def makeArr(n : Int) : Array[Int] = {val a = new Array[Int](n);val rand = new scala.util.Random();for (i <- a) yield rand.nextInt(n);}}\2. 编写一个循环,将整数数组中相邻的元素置换。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 object App{def main(args: Array[String]) {val a = Array(1, 2, 3, 4, 5); revert(a);a.foreach(println);}def revert(arr : Array[Int]) = {for (i <- 0 until (arr.length - 1, 2)) {val t = arr(i);arr(i) = arr(i + 1);arr(i + 1) = t;}}}\3. 重复前一个练习,不过这次生成一个新的值交换过的数组。

用for/yield 。

1 2 3 4 5 6 7 8 object App{def main(args: Array[String]) {val a = Array(1, 2, 3, 4, 5);val b = revertYield(a);b.foreach(println);}9 10 11 12 13 14 15 16 17 18 19 def revertYield(arr : Array[Int]) = {for (i <- 0 until arr.length) yield {if (i < (arr.length - 1) && i % 2 == 0) {val t = arr(i);arr(i) = arr(i + 1);arr(i + 1) = t;}arr(i);}}}\4. 给定一个整数数组,产出一个新的数组,包含元数组中的所有正值,以原有顺序排列,之后的元素是所有零或负值,以原有顺序排列。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import scala.collection.mutable.ArrayBufferobject App{def main(args: Array[String]) {val a = Array(1, -2, 0, -3, 0, 4, 5);val b = sigNumArr(a);b.foreach(println);}def sigNumArr(arr : Array[Int]) = {val buf = new ArrayBuffer[Int]();buf ++= (for (i <- arr if i > 0) yield i)buf ++= (for (i <- arr if i == 0) yield i)buf ++= (for (i <- arr if i < 0) yield i)buf.toArray}}\5. 如何计算Array[Double]的平均值?1 2 3 4 5 6 7 8 9 object App{def main(args: Array[String]) = {val a = Array(1.0, -2.0, 0.0, -3.0, 0.0, 4.0, 5.0);val b = avgArr(a);println(b)}def avgArr(arr : Array[Double]) = {10 11 12 arr.sum / arr.length}}\6. 如何重新组织Array[Int]的元素将它们反序排列?对于ArrayBuffer[Int]你又会怎么做呢? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import scala.collection.mutable.ArrayBufferobject App{def main(args: Array[String]) = {val a = Array(1, -2, 0, -3, 0, 4, 5);revertArray(a);a.foreach(println)// ArrayBuffer 反转val b = ArrayBuffer(1, -2, 0, -3, 0, 4, 5);val c = ArrayBuffer[Int]()c ++= b.reversec.foreach(println)}def revertArray(arr : Array[Int]) = {for (i <- 0 until (arr.length % 2)) {val t = arr(i);arr(i) = arr(arr.length - 1 - i);arr(arr.length - 1 - i) = t;}}}\7. 编写一段代码,产出数组中的所有值,去掉重复项。

1 2 3 4 5 6 7 8 9 10 11 12 import scala.collection.mutable.ArrayBufferobject App{def main(args: Array[String]) = {// ArrayBuffer 排重val b = ArrayBuffer(1, -2, 0, -3, 0, 4, 5);val c = ArrayBuffer[Int]()c ++= b.distinctc.foreach(println)}}\8. 重新编写3.4节结尾的示例。

收集负值元素的下标,反序,去掉最后一个下标,然后对每一个下标调用a.remove(i)。

比较这样做的效率和3.4节中另外两种方法的效率。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import scala.collection.mutable.ArrayBufferobject App{def main(args: Array[String]) = {val b = Array(1, -2, 0, -3, 0, 4, 5);val c = deleteUnFirstF(b)c.foreach(println)}def deleteUnFirstF(arr : Array[Int]) = {val indexes = (for (i <- 0 until arr.length if arr(i) < 0) yield i)val rights = indexes.reverse.dropRight(1)val tmp = arr.toBuffer for (index <- rights) tmp.remove(index)tmp}}\9. 创建一个由java.util.TimeZone.getAvailableIDs 返回的时区集合,判断条件是它们在美洲,去掉”America/“前缀并排序。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import scala .collection.mutable.ArrayBufferimport scala .collection.JavaConversions.asScalaBufferobject App{def main(args: Array[String]) = {var c = timeZoneName()c .foreach (println)}def timeZoneName() = {val arr = java .util.TimeZone.getAvailableIDs ();val tmp = (for (i <- arr if i .startsWith ("America/")) yield {i .drop ("America/".length )})scala .util.Sorting.quickSort (tmp)tmp}}\10. 引入java.awt.datatransfer._并构建一个类型为SystemFlavorMap 类型的对象,然后以DataFlavor.imageFlavor 为参数调用getNativesForFlavor 方法,以Scala 缓冲保存返回值。

1 2 3 4 5 6 7 8 9 10 11 12 import scala .collection.JavaConversions.asScalaBufferimport scala .collection.mutable.Bufferimport java .awt.datatransfer ._object App{def main(args: Array[String]) = {val flavors = SystemFlavorMap .getDefaultFlavorMap ().asInstanceOf [SystemFlavorMap] val buf : Buffer[String] = flavors .getNativesForFlavor (DataFlavor .imageFlavor ); buf .foreach (println);}}。

相关文档
最新文档