首页 > 其他分享 >Scala函数练习题

Scala函数练习题

时间:2024-03-24 20:32:49浏览次数:18  
标签:练习题 String val Scala Int list Array def 函数

1、定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作
比如: Array(“hh”,“red”,“java”,“hadoop”)
规则: 对集合中每个元素进行操作,得到集合每个元素的长度
object test {
  def main(args: Array[String]): Unit = {
    val list = Array("hh", "red", "java", "hadoop")
    val fun = (s: String) => {
      s.length
    }
    println(doSome(list, fun))
 
  }
 
  def doSome(list: Array[String], fun: (String) => Int) = {
    val res = for (elem <- list) yield {
      fun(elem)
    }
    res.toList
  }
}
2、定义一个高阶函数,对数据中的元素按照指定的规则进行过滤
比如: Array(1,4,7,9,10,6,8,99,88,66)
规则: 只保留偶数数据
object test1{
  def main(args: Array[String]): Unit = {
    val list = Array(1,4,7,9,10,6,8,99,88,66)
    println(filter(list,(_%2==0)))
  }
 
  def filter(list: Array[Int],fun:(Int)=>Boolean) = {
 
    val res = for (elem <- list if (fun(elem))) yield {
      elem
    }
    res.toList
  }
}

3、对数据中的元素按照指定规则进行分组
比如:Array(“zhangsan shenzhen man”,“lisi beijing woman”,“zhaoliu beijing man”)
规则: 按照地址进行分组
object test2 {
  def main(args: Array[String]): Unit = {
    val list = Array("zhangsan shenzhen man","lisi beijing woman","zhaoliu beijing man")
    println(group(list,_.split(" ")(2)))
  }
 
  def group(list:Array[String],fun:(String)=>String) = {
    val map = new util.HashMap[String,util.ArrayList[String]]()
    for (elem <- list) {
      val key = fun(elem)
      if(map.containsKey(key)){
        map.get(key).add(elem)
      }else{
        val value = new util.ArrayList[String]()
        value.add(elem)
        map.put(key,value)
      }
    }
    map
  }
}
4、根据指定规则对数组所有元素聚合
比如:Array(10,4,6,10,2)
规则: 求和/求乘积
object test3 {
  def main(args: Array[String]): Unit = {
    val list = Array(10,4,6,10,2)
    println(poly(list,_+_))
  }
 
  def poly(list:Array[Int],fun:(Int,Int)=>Int) = {
    var res = list(0)
    for (i<-1 until list.size) res = fun(res,list(i))
    res
  }
}

标签:练习题,String,val,Scala,Int,list,Array,def,函数
From: https://blog.csdn.net/l15972865175/article/details/136994234

相关文章

  • 详解rtklib中main函数如何配置文件(下)
    目录一、main函数流程总结二、分析识别-k后如何配置三、最后传参的数据文件处理方式 一、main函数流程总结详解rtklib中main函数如何配置文件(上)-CSDN博客在这片文章中讲解了rtklib中main函数的整个流程。(1)通过两种方法给main函数传递参数,并放在argv这个指针数组......
  • 初识C++(二)引用,内联函数,auto
    目录1.引用的概念与用法:1.1引用特性:1.2使用场景    1.2.1做参数1.3传值、传引用效率比较1.4引用做返回值1.5引用和指针的对比2.内联函数3.auto关键字4.基于范围的for循环(C++11)5.指针空值nullptr(C++11)1.引用的概念与用法:    引用是一个重要的......
  • 直方图和密度函数——Python实现
    概率密度函数是概率论核心概念之一,用于描述连续型随机变量所服从的概率分布,是概率计算的通用表达。研究一个随机变量,不只是要看它能取哪些值,更重要的是它取各种值的概率如何!在实际使用时对应离散化后的频率。也可以这样理解,概率密度函数是数学通用表达的频率,而统计学中的频率是将......
  • 10_FreeRTOS任务相关API函数
    FreeRTOS任务相关API函数FreeRTOS任务相关API函数介绍UBaseType_tuxTaskPriorityGet(constTaskHandle_txTask)voidvTaskPrioritySet(TaskHandle_txTask,UBaseType_tuxNewPriority)UBaseType_tuxTaskGetNumberOfTasks(void)uxTaskGetSystemStatevTaskGe......
  • Scala练习题
    1、定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作比如:Array(“hh”,“red”,“java”,“hadoop”)规则:对集合中每个元素进行操作,得到集合每个元素的长度packageljobjectaaa{defmain(args:Array[String]):Unit={vallist=Array("......
  • function函数和箭头函数的区别,用法和功能方面的区别
    在JavaScript中,普通函数(functionfunctions)和箭头函数(arrowfunctions)有一些区别,包括用法和功能方面的不同之处:语法:普通函数使用关键字 function 来声明函数,例如:functionmyFunction(){...}。箭头函数使用箭头 => 来声明函数,例如:constmyFunction=()=>{...}......
  • 线性筛积性函数
    0.前言积性函数是数论中一种极其重要的函数。它是指对于一个函数\(f(x)\),如果\(\gcd(x,y)=1\),则\(f(xy)=f(x)f(y)\),则\(f(x)\)就是一个积性函数。积性函数大多数可以用线性筛质数的方法筛出来,本文将介绍几种常见的积性函数的筛法及一些拓展。1.线性筛质数大佬可跳......
  • mysql函数
    聚合函数【1】count()统计表中数据的行数或者统计指定列其值不为NULL的数据个数--查询表里有多少个人selectcount(id)fromuser;+-----------+|count(id)|+-----------+|13|+-----------+【2】max()指定列的最大值--查询最高的工资selectmax(s......
  • Hive 时间戳日期函数总结
    说明基于Hive的数据开发工作中,常常用到时间戳,日期各种格式转换,今天抽时间梳理一下。1. 获取当前UNIX时间戳函数:unix_timestampselectunix_timestamp();17112685562、UNIX时间戳转日期函数:from_unixtimeselectfrom_unixtime(1711268371,'yyyyMMdd');--20240324......
  • 八、常用函数
    本章专题脉络1、字符串相关函数1.1字符串的表示方式C语言没有单独的字符串类型,字符串被当作字符数组,即char类型的数组。表示方式如下:方式1:charstr[]="hello";方式2:char*str="hello";1.2两种方式的区别字符指针和字符数组,这两种声明字符串变量的写法基本是......