遍历数组中的元素

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简易实践知识相关推荐

  1. docker简易实践

    docker简易实践 实验环境 操作系统:deepin 15.4 安装步骤 1.安装docker sudo apt-get install docker.io 2.启动docker服务 sudo se ...

  2. Scala初级实践——统计手机耗费流量(1)

    Scala初级实践--统计手机耗费流量(1) [实验描述] 本实验主要使用Scala语言来实现对手机流量的计算.在该实验中,共有四个需求: 1)统计每一个手机号耗费的总上行流量.下行流量.总流量 2) ...

  3. 学习一个月web开发的成果,服务器C++,数据库postgresql简易的知识分享平台

     学习一个月web开发的成果,服务器C++的select模型,数据库postgresql,前台html,css,js jquery做的简易的知识分享平台,有注册,登录,知识分享(类似博文),知识浏 ...

  4. 豆瓣图书的推荐与搜索、简易版知识引擎构建(neo4j)

    DouBanRecommend 基于豆瓣图书的推荐.知识图谱与知识引擎简单构建neo4j 本项目主要贡献源来自豆瓣爬虫(数据源)lanbing510/DouBanSpider.知识图谱引擎Agricu ...

  5. scala 相关基础知识

    scala入门 scala入门 scala教程 map 可变map,需导入import scala.collection.mutable.Map //有初始值val map = Map("z ...

  6. 计算机相关理论和实践知识题,计算机上机考试模拟考试习题.doc

    计算机上机考试模拟考试习题 PAGE PAGE 13 计算机上机考试模拟试题 计算机上机考试分为三部分内容: 一.理论题:类型为单选题,共25题,答题时间为40分钟,包括Word ,Excel,Pow ...

  7. 深入理解OSGI Equinox原理应用与最佳实践 知识整理篇

    1.OSGI框架是什么? OSGI为实现Java模块化开发,实现热插拔功能化的框架实现.可以实现类似不重启系统也可以实现添加,删除其部分功能而不会导致系统崩溃的框架实现.一个功能相当一个模块,针对模块 ...

  8. python从入门到实践知识笔记

    98.pickle 模块的使用:Python3 pickle模块用法 - 正态分个布 - 博客园 97. ==读取文件中每行的数据: ==文件: 使用 r+ ,会将第一行覆盖  (r 没有覆盖功能的, ...

  9. 知识图谱可视化技术在美团的实践与探索

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年3月份热门报告盘点 某短视频APP推荐算法及策略最详细拆解 大萧条来临前的几大征兆 机器学 ...

最新文章

  1. HarmonyOS ToastDialog 的使用
  2. S8赛事落幕,阿里云边缘计算护航虎牙7000万低延时流畅直播
  3. 获取PHP中的完整URL
  4. linux 文件 跳板机_shell实现跳板机
  5. 老派程序员——徒手实现伟大成就
  6. Codeigniter分页类代码实例
  7. No New-Net
  8. [原创]markdown语法学习(commonmark)
  9. 大学excel题库含答案_大学excel操作测试题「附答案」
  10. wireshark(2)- ethernet工具 xcap wireshark tcpdump
  11. APPCON低成本Si4438 470M电表无线抄表模块
  12. 如何成为一名很酷的机器人工程师
  13. 架构师须知概念:POJO、PO、DTO、DAO、BO、VO
  14. mysql保存提示 HHH000315:Batch update returned unexpected row count from update: 1 actual row count: 0 ex
  15. 团队管理经典书籍推荐:《团队管理必读12篇》
  16. 闪讯 padavan 配置
  17. uvm中uvm_event, uvm_event_pool的用法
  18. 加薪申请书怎么写?加薪申请范文,想涨工资的看过来!
  19. 8、ARM嵌入式系统:UART初始化
  20. HDU 6608 Fansblog——————大素数检测

热门文章

  1. 小区门禁MATLAB的指纹识别仿真
  2. Mybatis+Oracle插入万条数据
  3. Xcode 10 beta 版本迁移指南
  4. 如何禁用计算机开放的端口,关闭端口命令,教您如何关闭电脑80端口
  5. QT 实现类似QQ的头像
  6. 2020高性价比蓝牙耳机Top10,高音质爆款时尚蓝牙耳机推荐
  7. 电视剧奋斗资料收集(资料)
  8. 唯品会API开发系列:item_search-按关键字搜索vip商品API 返回值说明
  9. usb接口供电不足_这产品还算良心,有辅助供电,不然就成电子垃圾了
  10. 尚吉ipad点菜机及餐饮管理系统