Scala简易实践知识
遍历数组中的元素
package com.biem.testobject test{//定义一个数组 数组类型 Array(1,2,3,4); //> res0: Array[Int] = Array(1, 2, 3, 4)//第一种遍历方法 结果一:for (i<-Array(1,2,3,4)) println(i) //> 1//| 2//| 3//| 4//第二种遍历方法 结果二:Array(1,2,3,4).foreach{println(_)} //> 1//| 2//| 3//| 4}
九九乘法表
--注意,for循环中,如果需要赋值的时候,必须用的是常量val
//1.第一种方法
package com.biem.testobject test10 {println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet1 to 9 //> res0: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7,//| 8, 9)for(x<-1 to 9){for(y <-1 to x){print(y+"*"+x+"="+x*y+"\t")}println} //> 1*1=1 //| 1*2=2 2*2=4 //| 1*3=3 2*3=6 3*3=9 //| 1*4=4 2*4=8 3*4=12 4*4=16 //| 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 //| 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 //| 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 //| 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 //| 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 //| }//2.第二种方法// :--在for循环当中,加入条件的方式被称为for循环的卫语句 for(a<-1 to 9;b<-1 to a;val sep=if(a==b)"\r\n"else"\t")print(s"$b*$a=${b*a}$sep") //> 1*1=1//| 1*2=2 2*2=4//| 1*3=3 2*3=6 3*3=9//| 1*4=4 2*4=8 3*4=12 4*4=16//| 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25//| 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36//| 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49//| 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64//| 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
针对下列Java循环编写一个Scala版本: for(int i=10;i>=0;i–) System.out.println(i);
for(i<-1 to 10 reverse)println(i) //> 10//| 9//| 8//| 7//| 6//| 5//| 4//| 3//| 2//| 1for(i<-10 to 1 by -1)println(i) //> 10//| 9//| 8//| 7//| 6//| 5//| 4//| 3//| 2//| 1}
编写一个函数countdown(n:Int),打印从n到0的数字
def countdown(n:Int)={for(i<- 0 to n reverse){println(i)}} //> countdown: (n: Int)Unitcountdown(5) //> 5//| 4//| 3//| 2//| 1//| 0
编写一个循环,将整数数组中相邻的元素置换
def revert(arr:Array[Int])={for(i<-0 until arr.length-1 by 2){val temp=arr(i)arr(i)=arr(i+1)arr(i+1)=temp}} //> revert: (arr: Array[Int])Unitval a1=Array(1,2,3,4,5,6) //> a1 : Array[Int] = Array(1, 2, 3, 4, 5, 6)revert(a1)a1 //> res0: Array[Int] = Array(2, 1, 4, 3, 6, 5)}
编写函数计算x的n次方,其中n是整数,要考虑等n是0,正偶数,正奇数,负数这几种情况。 比如当x=2时,此函数要算出 24,23,20,2(-1)对应的值 要求:编写的是递归函数 mi(2,10)=1024
def mi(x:Double,n:Int):Double={if(n == 0) return 1else if (n > 0 && n%2 == 0) mi(x,n/2) * mi(x,n/2)else if(n>0 && n%2 == 1) x * mi(x,n-1)else 1/mi(x,-n)
} //> mi: (x: Double, n: Int)Doublemi(2,8) //> res1: Double = 256.0val m1=Map("book"->10,"gun"->100,"ipad"->1000) //> m1 : scala.collection.immutable.Map[String,Int] = Map(book -> 10, gun -> 1//| 00, ipad -> 1000)val m2=for((k,v)<-m1)yield{(k,v*0.9)} //> m2 : scala.collection.immutable.Map[String,Double] = Map(book -> 9.0, gun //| -> 90.0, ipad -> 900.0)}
将一个val a1 = Array(“tom,23,m”,“rose,25,w”,“jim,19,w”) 变成一个新的数组返回
val a1 = Array("tom,23,m","rose,25,w","jim,19,w")//> a4 : Array[String] = Array(tom,23,m, rose,25,w, jim,19,w)val a2 = a1.map{line=>{val info = line.split(",")val name = info(0)val age = info(1).toIntval gender = info(2)(name,age,gender)}} //> a5 : Array[(String, Int, String)] = Array((tom,23,m), (rose,25,w), (jim,19,//| w))
val l1=List(“hello,world”,“hello,scala”,“hello,world”) 要求:按照已学过的高阶函数,操作l3,实现单次频次的统计 结果:(hello,3)(world,2)(scala,1) 提示:map、flatMap、groupBy、mapValues
l3.flatMap { line => line.split(",") }.groupBy { word => word }.mapValues{list=>list.size}.foreach{println} //> (scala,1)//| (world,2)//| (hello,3)//--2、不用mapValues,使用map做l3.flatMap { line => line.split(",") }.groupBy { word => word }.map{case(k,v)=>(k,v.size)}.foreach{println} //> (scala,1)//| (world,2)//| (hello,3)//--3、不用case怎么写l3.flatMap { line => line.split(",") }.groupBy { word => word }.map{x=>(x._1,x._2.size)}.foreach{println} //> (scala,1)//| (world,2)//| (hello,3)//--4l3.flatMap { line => line.split(",") }.map{word=>(word,1)}//接着写.groupBy{x=>x._1}.mapValues{list=>list.map{x=>x._2}.sum}.foreach{println} //> (scala,1)//| (world,2)//| (hello,3)//--5l3.flatMap { line => line.split(",") }.map{word=>(word,1)}//接着写.groupBy{x=>x._1}.mapValues{list=>list.map{x=>x._2}.reduce(_+_)}.foreach{println} //> (scala,1)//| (world,2)//| (hello,3)
编写函数values (fun:(Int)=>Int,low:Int ,high:Int), 该函数输出一个集合,对应给定区间内给定函数的输入和输出。 比如,//-5,-4,-3,-2,-1,0,1,2,3,4,5
def f1(fun:(Int)=>Int,low:Int,high:Int)={val arr=ListBuffer[(Int,Int)]()for(num<- low to high){arr.append((num,fun(num)))}arr} //> f1: (fun: Int => Int, low: Int, high: Int)scala.collection.mutable.ListBuffe//| r[(Int, Int)]
f1(x=>x+x,-5,5) //> res0: scala.collection.mutable.ListBuffer[(Int, Int)] = ListBuffer((-5,-10),//| (-4,-8), (-3,-6), (-2,-4), (-1,-2), (0,0), (1,2), (2,4), (3,6), (4,8), (5,1//| 0))
如何使用reduceLeft得到数组中最大元素? Array(1,2,3,4,5) 不能使用max
val a3 = Array(1,2,3,4,5) //> a3 : Array[Int] = Array(1, 2, 3, 4, 5)a3.reduceLeft((a,b)=>if(a>b) a else b) //> res1: Int = 5
Scala简易实践知识相关推荐
- docker简易实践
docker简易实践 实验环境 操作系统:deepin 15.4 安装步骤 1.安装docker sudo apt-get install docker.io 2.启动docker服务 sudo se ...
- Scala初级实践——统计手机耗费流量(1)
Scala初级实践--统计手机耗费流量(1) [实验描述] 本实验主要使用Scala语言来实现对手机流量的计算.在该实验中,共有四个需求: 1)统计每一个手机号耗费的总上行流量.下行流量.总流量 2) ...
- 学习一个月web开发的成果,服务器C++,数据库postgresql简易的知识分享平台
学习一个月web开发的成果,服务器C++的select模型,数据库postgresql,前台html,css,js jquery做的简易的知识分享平台,有注册,登录,知识分享(类似博文),知识浏 ...
- 豆瓣图书的推荐与搜索、简易版知识引擎构建(neo4j)
DouBanRecommend 基于豆瓣图书的推荐.知识图谱与知识引擎简单构建neo4j 本项目主要贡献源来自豆瓣爬虫(数据源)lanbing510/DouBanSpider.知识图谱引擎Agricu ...
- scala 相关基础知识
scala入门 scala入门 scala教程 map 可变map,需导入import scala.collection.mutable.Map //有初始值val map = Map("z ...
- 计算机相关理论和实践知识题,计算机上机考试模拟考试习题.doc
计算机上机考试模拟考试习题 PAGE PAGE 13 计算机上机考试模拟试题 计算机上机考试分为三部分内容: 一.理论题:类型为单选题,共25题,答题时间为40分钟,包括Word ,Excel,Pow ...
- 深入理解OSGI Equinox原理应用与最佳实践 知识整理篇
1.OSGI框架是什么? OSGI为实现Java模块化开发,实现热插拔功能化的框架实现.可以实现类似不重启系统也可以实现添加,删除其部分功能而不会导致系统崩溃的框架实现.一个功能相当一个模块,针对模块 ...
- python从入门到实践知识笔记
98.pickle 模块的使用:Python3 pickle模块用法 - 正态分个布 - 博客园 97. ==读取文件中每行的数据: ==文件: 使用 r+ ,会将第一行覆盖 (r 没有覆盖功能的, ...
- 知识图谱可视化技术在美团的实践与探索
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年3月份热门报告盘点 某短视频APP推荐算法及策略最详细拆解 大萧条来临前的几大征兆 机器学 ...
最新文章
- HarmonyOS ToastDialog 的使用
- S8赛事落幕,阿里云边缘计算护航虎牙7000万低延时流畅直播
- 获取PHP中的完整URL
- linux 文件 跳板机_shell实现跳板机
- 老派程序员——徒手实现伟大成就
- Codeigniter分页类代码实例
- No New-Net
- [原创]markdown语法学习(commonmark)
- 大学excel题库含答案_大学excel操作测试题「附答案」
- wireshark(2)- ethernet工具 xcap wireshark tcpdump
- APPCON低成本Si4438 470M电表无线抄表模块
- 如何成为一名很酷的机器人工程师
- 架构师须知概念:POJO、PO、DTO、DAO、BO、VO
- mysql保存提示 HHH000315:Batch update returned unexpected row count from update: 1 actual row count: 0 ex
- 团队管理经典书籍推荐:《团队管理必读12篇》
- 闪讯 padavan 配置
- uvm中uvm_event, uvm_event_pool的用法
- 加薪申请书怎么写?加薪申请范文,想涨工资的看过来!
- 8、ARM嵌入式系统:UART初始化
- HDU 6608 Fansblog——————大素数检测