前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Scala入门必刷的100道练习题(附答案)

Scala入门必刷的100道练习题(附答案)

作者头像
Maynor
发布于 2023-03-16 05:48:03
发布于 2023-03-16 05:48:03
3.2K0
举报

## set集合(1-10)

1、定义一个不可变set集合a,保存以下元素:10,20,30,10,50,40

2、获取a集合的大小

3、遍历a集合

4、a集合删除元素50

5、a集合拼接set集合Set(60,80,90)

6、a集合拼接列表List(100,300,200)

7、定义一个可变set集合b,初始元素为:5,6,7,8

8、b集合中使用+=添加元素9

9、b集合中删除元素5

10、b集合使用add添加元素10

## Map映射(11-20)

11、构建一个映射map1,内容为"zhangsan" -> 20, "lisi" -> 18, "wangwu" -> "22"

12、构建一个映射map2,内容为"zhangsan" -> 20, "lisi" -> 18, "wangwu" -> "22"

13、构建一个空的映射map3,参数类型为Map[String, Int]

14、获取map2中的lisi的年龄

15、获取所有的map2中的key值 

16、获取所有的map2中的value值 

17、map2中新增一组数据:zhaoliu,25

18、map2中获取zhaoliu的年龄,如果zhaoliu不存在,则返回-1

19、map2中遍历打印所有的key和value

20、在map2中添加map1集合

方法(21-30)

以下10道题目需要倒入两个包

import scala.io.StdIn

import scala.util.control.Breaks

21. 编写一个方法method1,输入分数之后能够打印出不及格(小于60分)、及格(60-80)、良好(80-90)、优秀(大于90)

22. 编写一个方法method2,输入名字,判断该名字是否为laowang,如果是返回true,如果不是返回false(不使用return)

23. 编写一个方法method3,要求能够输入一个大于0的数字参数,能够打印1到该数字范围内的所有数。(2种方式)

24. 编写一个方法method4,要求能够输入一个大于0的数字参数,能够打印1到该数字范围内的所有偶数。

25. 编写一个方法method5,要求能够输入一个大于0的数字参数,能够打印1到该数字范围内的所有奇数,并且该奇数不能被5整除。

26. 编写一个方法method6,要求可以输入任意多个参数(数字类型),将每个参数乘以100后放入数组并返回该数组。

如:2, 4, 6 返回 Array(200, 400, 600)。

27. 编写一个方法method7,要求输入一个数字,如果数字大于150则抛出异常,并捕获该异常,捕获异常后打印The number is greater than 150。

提示:throw new Exception("The number is greater than 150")

28. 编写一个方法method8,要求传入两个参数,默认值分别为10,15,返回两个参数的乘积。

29. 定义一个名为method9的方法,有三个参数,前两个为数字类型,最后一个参数为f1函数(该函数类型参数接受两个数字类型参数,返回值也是数字类型),该method9方法返回值为数字类型。定义一个函数f1两个参数分别为x,y都为数字类型,执行返回结果是两个参数的和

30. 编写一个方法method10,要求有两个参数,两个参数都为大于0的数字,要求能够打印1到第一个参数数字范围内的所有数,在打印过程中遇到与第二个参数相乘大于200就停止。

数组(31-40)

31、定义一个数组arr1内容为1-10

32、使用filter过滤器,过滤出来偶数

33、使用map把arr1数组中每一个元素都取出来放到一个全新数组

34、使用foreach打印出arr1数组中的元素

35、翻转数组arr1 

36、修改数组arr1中下标为0的数据为100

37、删除arr1数组下标为0的数据

38、arr1数组从下标2开始,删除3个元素

39、插入数据到arr1数组, 第一个参数是开始的位置,插入50,66,77

40、对arr1数组进行降序排列

List列表(41-70)

41、定义一个列表list1,内容为("a", "b" ,"c","d","e")

42、在list1列表开头添加元素t

43、在列表开头添加指定列表List("m","n")的元素

44、在列表list1后添加元素1

45、将列表的所有元素添加到 StringBuilder

46、将列表的所有元素添加到 StringBuilder并指定分隔符为","

47、获取列表索引为0的元素

48、检测列表中是否包含指定的元素a

49、向list1列表中追加数据"a"

50、去除list1列表的重复元素,并返回新列表

51、list1丢弃前3个元素,并返回新列表

52、list1丢弃最后2个元素,并返回新列表

53、检测列表list1是否以指定a结尾

54、判断是否是以指定a开始的列表list1

55、获取list1列表的第一个元素

56、在list1中从指定位置 0 开始查找元素d第一次出现的位置

57、list1返回所有元素,除了最后一个

58、检测列表list1是否为空

59、返回list1列表最后一个元素

60、返回list1所有元素,除了第一个

61、提取列表list1的前2个元素

62、提取列表list1的后2个元素

63、列表list1转换为数组

64、list1转换为 Seq

65、list1转换为 Set

66、list1列表转换为字符串

67、list1列表反转

68、list1列表排序

69、检测list1列表在指定位置1处是否包含指定元素a

70、列表list1转换为数组

元组(71-76)

71 创建一个元组Y1,内部含有zhangsan   biejing   20  true  四个数据

72 获取元组Y1内的第二个元素(biejing)

现有数据如下图

姓名 zhangsan lisi wangwu zhaoliu

年龄 20 30 40 50

性别 1 0 1 0

73 创建一个元组Y2,内部含有(zhangsan ,lisi,wangwu,zhaoliu),(20,30,40,50),(1,0,1,0)  3个数据(每个内部依然是元组)。

74 获取zhangsan,并输出

75 获取lisi 的年龄,并输出

76 获取wangwu的性别,并输出

Iterator迭代器(77-86)

77、 定义一个迭代器iter1,数据为"Hadoop","Spark","Java"

78、遍历iter1,使用while循环并打印输出

79、定义一个迭代器iter2,数据为10,20,20,30,34,50,60

80、打印出iter2中的最大值

81、打印出iter2中的最小值

82、打印出iter2的长度

83、合并iter2和iter1两个迭代器

84、iter2丢弃前2个元素

85、检查iter2是否为空

86、iter2返回前 2个元素的新迭代器

87.变长数组的特点是什么?

88.创建没有初始元素的ArrayBuffer变长数组,语法结构是什么?

89.创建带有初始元素的ArrayBuffer的语法结构是什么?

90.在定义变长数组的时候需要导入哪个包?

91.定义变长数组的时候需要注意的点?

92.定义一个变长数组 a,数组类型为string,长度为0

93.向变长数组中添加元素spark

94.定义一个包含以下元素的变长数据,10,20,30,40,50

95.b数组删除元素50

96.在b数组后面追加一个数组Array(70)

97.使用for循环遍历b数组的内容并输出

98.使用for循环遍历b数组的索引下标,并打印元素

99.在scala中数组常用方法有哪些?

100.定义一个数组,包含以下几个元素(10,20,30,40),请计算该数组的和

101.定义一个数组,包含以下几个元素(130,120,310,140),请计算该数组的最大值

102.定义一个数组,包含以下几个元素(130,120,310,140),请计算该数组的最小值

103.定义一个数组,包含以下几个元素(130,120,310,140),请计算该数组的和

104.定义一个数组,包含以下几个元素(130,120,310,140),请实现降序排序

答案链接:

https://blog.csdn.net/xianyu120/article/details/115606703

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Scala面向对象练习题34道
声明三个成员变量,String类型的name,Int 类型的age,String类型的address
Maynor
2021/12/07
1K0
Dart 学习基础篇(数据类型&对应方法
可以通过var 来定义变量,他会自动匹配变量的数据类型,也可以使用 对应的 String , int 来指定定义的类型。
KID.
2024/01/17
2930
长文预警,一篇文章扫盲Python、NumPy 和 Pandas,建议收藏慢慢看
当前流行的 Python 版本有两个,2.X 和 3.X,由于 2.X 即将不再维护,所以我建议直接使用 3.X 版本作为你的主要版本。
周萝卜
2021/01/28
2.2K0
带你快速掌握Scala操作———(3)
创建变长数组,需要提前导入ArrayBuffer类 import scala.collection.mutable.ArrayBuffer
刘浩的BigDataPath
2021/04/13
2K0
带你快速掌握Scala操作———(3)
学习Java必刷编程练习题
现有一个Map集合,map中学号(String)为key,学生(Student)为value,分别使用keySet方式  和entrySet的方式 打印集合中每一个Student对象的name属性和age属性
陶然同学
2023/02/27
7930
【Scala篇】--Scala中集合数组,list,set,map,元祖
备注:数组方法 1     def apply( x: T, xs: T* ): Array[T] 创建指定对象 T 的数组, T 的值可以是 Unit, Double, Float, Long, Int, Char, Short, Byte, Boolean。 2     def concat[T]( xss: Array[T]* ): Array[T] 合并数组 3     def copy( src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int ): Unit 复制一个数组到另一个数组上。相等于 Java's System.arraycopy(src, srcPos, dest, destPos, length)。 4     def empty[T]: Array[T] 返回长度为 0 的数组 5     def iterate[T]( start: T, len: Int )( f: (T) => T ): Array[T] 返回指定长度数组,每个数组元素为指定函数的返回值。 以上实例数组初始值为 0,长度为 3,计算函数为a=>a+1: scala> Array.iterate(0,3)(a=>a+1) res1: Array[Int] = Array(0, 1, 2) 6     def fill[T]( n: Int )(elem: => T): Array[T] 返回数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。 7     def fill[T]( n1: Int, n2: Int )( elem: => T ): Array[Array[T]] 返回二数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。 8     def ofDim[T]( n1: Int ): Array[T] 创建指定长度的数组 9     def ofDim[T]( n1: Int, n2: Int ): Array[Array[T]] 创建二维数组 10     def ofDim[T]( n1: Int, n2: Int, n3: Int ): Array[Array[Array[T]]] 创建三维数组 11     def range( start: Int, end: Int, step: Int ): Array[Int] 创建指定区间内的数组,step 为每个元素间的步长 12     def range( start: Int, end: Int ): Array[Int] 创建指定区间内的数组 13     def tabulate[T]( n: Int )(f: (Int)=> T): Array[T] 返回指定长度数组,每个数组元素为指定函数的返回值,默认从 0 开始。 以上实例返回 3 个元素: scala> Array.tabulate(3)(a => a + 5) res0: Array[Int] = Array(5, 6, 7) 14     def tabulate[T]( n1: Int, n2: Int )( f: (Int, Int ) => T): Array[Array[T]] 返回指定长度的二维数组,每个数组元素为指定函数的返回值,默认从 0 开始。
LhWorld哥陪你聊算法
2018/09/13
2.8K0
01.Scala:开发环境搭建、变量、判断、循环、函数、集合
早期,scala刚出现的时候,并没有怎么引起重视,随着Kafka和Spark这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。
Maynor
2021/04/09
4.3K0
初探函数式编程---以Map/Reduce/Filter为例
函数式编程的理念:把函数当成变量来用,关注于描述问题而不是怎么实现(这样可以让代码更易读)
fliter
2023/09/05
3330
初探函数式编程---以Map/Reduce/Filter为例
scala(六) 高阶函数
高阶函数:以函数作为参数或返回值的方法(函数)称为高阶函数。我的理解是高阶函数是一种思想,它的作用能让我们的程序更加灵活。 思考:如果让你实现一个计算器,功能不多,只有+,-,*,/ 四个功能。 方式一:普通方式 定义四个方法(函数)
用户1483438
2022/04/13
7090
Scala 高阶(七):集合内容汇总(上篇)
Scala中的集合与Java中的集合相类似,但是又有很多的改变,接下来我们开启Scala集合篇的学习历程吧!
百思不得小赵
2022/12/01
1.1K0
Scala 高阶(七):集合内容汇总(上篇)
Python入门三部曲(二)
如果不确定使用del语句还是pop()方法,有一个简单的标准:如果你要从列表中删除的一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()
龙哥
2018/10/22
1.3K0
大数据技术之_16_Scala学习_07_数据结构(上)-集合
  1、Set、Map 是 Java 中也有的集合。   2、Seq 是 Java 中没有的,我们发现 List 归属到 Seq 了,因此这里的 List 就和 java 不是同一个概念了。   3、我们前面的 for 循环有一个 1 to 3,就是 IndexedSeq 下的 Vector。   4、String 也是属于 IndexeSeq。   5、我们发现经典的数据结构,比如 Queue 和 Stack 被归属到 LinearSeq。   6、大家注意 Scala 中的 Map 体系有一个 SortedMap,说明 Scala 的 Map 可以支持排序。   7、IndexSeq 和 LinearSeq 的区别     IndexSeq 是通过索引来查找和定位,因此速度快,比如 String 就是一个索引集合,通过索引即可定位。     LineaSeq 是线型的,即有头尾的概念,这种数据结构一般是通过遍历来查找,它的价值在于应用到一些具体的应用场景(比如:电商网站,大数据推荐系统:最近浏览的10个商品)。
黑泽君
2019/04/09
1.3K0
大数据技术之_16_Scala学习_07_数据结构(上)-集合
03.Scala:样例类、模式匹配、Option、偏函数、泛型
样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),在后续要学习并发编程和spark、flink这些框架也都会经常使用它。
Maynor
2021/04/09
2.2K0
Python基础-你必备的语言技能包
为什么是 Python 呢,在相关的开发语言调查中,使用过 Python 的开发者,大多数人都会把 Python 作为自己的主要语言。在数据分析领域,使用 Python 语言更是最多的。Python 语言语法简洁,搭建方便,而且还拥有庞大健全的第三方库供使用。比如科学计算工具库 Pandas 和 NumPy;深度学习工具 Keras 和 TensorFlow;以及机器学习工具库 Scikit-learn 等等。
py3study
2020/01/07
3820
曾经以为Python中的List用法足够灵活,直至我遇到了Scala…
继续开工Scala系列专题,虽然对自己来说这是一个全新的方向和足够的挑战,阅读数也很是惨淡,但选择了方向就要坚持下去——生活中的获得感不正是源于一个个挑战和抉择之间吗!
luanhz
2021/02/03
9300
曾经以为Python中的List用法足够灵活,直至我遇到了Scala…
Scala学习三-面向对象
前面我们已经学习了特质类似接口,其可以被继承,同时如果需要继承多个特质的话,则需要使用extends…with…进行继承。其类似java中的接口和抽象方法的结合体,但又比java中的其要强大,因为其可以定义抽象字段和普通字段、抽象方法和普通方法。而在java中接口中可以定义常量,不能定义变量。同时特质还可以继承class类,而在java中接口通常是用来实现的。
路行的亚洲
2020/10/26
7410
Scala学习三-面向对象
Scala——多范式, 可伸缩, 类似Java的编程语言
3.将features和plugins两个文件夹拷贝到eclipse安装目录中的” dropins/scala”目录下。进入dropins,新建scala文件夹,将两个文件夹拷贝到“dropins/scala”下
时间静止不是简史
2020/07/24
3.2K2
Python模块化编程-内置函数#学习猿地
> 内置函数就是在系统安装完python解释器时,由python解释器给提供好的函数
学习猿地
2020/03/17
4860
Python模块化编程-内置函数#学习猿地
快速入门Flink (5) ——DataSet必知必会的16种Transformation操作(超详细!建议收藏!)
写在前面: 博主是一名大数据的初学者,昵称来源于《爱丽丝梦游仙境》中的Alice和自己的昵称。作为一名互联网小白,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于起步阶段的萌新。由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!个人小站:http://alices.ibilibili.xyz/ , 博客主页:https://alice.blog.csdn.net/ 尽管当前水平可能不及各位大佬,但我还是希望自己能够做得更好,因为一天的生活就是一生的缩影。
大数据梦想家
2021/01/27
1.2K1
快速入门Flink (5) ——DataSet必知必会的16种Transformation操作(超详细!建议收藏!)
Java集合【超详细】2 -- Map、可变参数、Collections类
还记得 Java集合框架体系、Collection、List、ArrayList、LinkedList、Set、TreeSet、HashSet 吗?如果忘记可以到这里重新温习: Java集合【超详细】
寻求出路的程序媛
2024/05/31
1870
Java集合【超详细】2  --  Map、可变参数、Collections类
相关推荐
Scala面向对象练习题34道
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档