27_Scala功能函数

server/2025/2/21 23:57:45/

文章目录

  • 功能函数
  • 1.功能函数处理集合数据
  • 2.扁平化操作
  • 3.按照指定条件将数据集中的数据进行过滤
  • 4.集合通过 自定义函数进行分组
  • 5.mapValues
  • 6.sortBy函数

功能函数

1.功能函数处理集合数据

–集合的功能函数 map

List --> map( logical ) --> newList

–实现一个不确定的功能,但是这个功能的主要目的是将数据集中的每一条数据进行处理后返回一个新的集合
scala已经封装好了,提供了可以自动转换的操作,具体逻辑由开发人员自己提供; map方法

–map函数需要传入函数类型

–可变集合不可变集合都适用

–功能函数一般都是使用匿名函数

import scala.collection.mutable
val list = mutable.Seq(2, 0, 4, 8)
list.map(_ * 2)       //map操作不改变原始集合

在这里插入图片描述

2.扁平化操作

import scala.collection.mutable
val list = mutable.Seq(2, 0, 4, 8)
//    println(list.map(_ * 2)) //map操作不改变原始集合 //此处的下划线表示占位符,就表示每一条数据

在这里插入图片描述

–List(List(2,0),List(4,8))扁平化操作就是将复杂数据集合,中取出单个独立的数据
–flatten扁平化操作会将String类型当作char数组使用

//    --flatten扁平化操作会将String类型当作char数组使用
var list2 = List("hello lilei", "hello fanbingbing")
println(list2.flatten) 

在这里插入图片描述

–可以进行自定义函数扁平化flatMap()

val strings = list2.flatMap(str => str.split(" ") //直接将str 进行变化即可
)
println(strings) //List(hello, lilei, hello, fanbingbing)

在这里插入图片描述

3.按照指定条件将数据集中的数据进行过滤

list.filter(num => true)

–filter函数需要传入函数对象

4.集合通过 自定义函数进行分组

val list3 = mutable.Seq(1, 3, 4, 8)val intToInts = list3.groupBy(num => {if (num % 2 == 0) {0} else {1}}
)
print(intToInts)

在这里插入图片描述

API使用groupby,传参传入的是一个函数对象类型

传入指定标记,标记没有指定写法

5.mapValues

--mapValues函数,其操作Map集合中V的变化的函数
val map = mutable.Map("a" -> 2, "b" -> 3, "c" -> 4)
val stringToInt = map.mapValues(num => num * 2
)
println(stringToInt)

在这里插入图片描述

6.sortBy函数

按照指定顺序进行排序。sortBy默认情况下升序排序

//    sortByvar list4 = List(2,0,4,8)println(list4.sortBy(num => num		//按照数字大小排序))

在这里插入图片描述

如果是想要降序排序,需要传入逻辑柯里化操作,在排序逻辑旁边不需要加逗号,直接加括号即可;


http://www.ppmy.cn/server/40172.html

相关文章

学习java第六十七天

注入 Bean 的注解有哪些? 答: Autowired:根据类型进行注入,如果匹配到多个Bean,则会爆出异常。可以和Qualifier搭配使用,指定使用哪个名称的Bean Resource:首先根据名称注入,如果…

MotionDiffuse: Text-Driven Human Motion Generation withDiffusion Model # 论文阅读

URL https://arxiv.org/pdf/2208.15001 主页:https://mingyuan-zhang.github.io/projects/MotionDiffuse.html TD;DR 22 年 8 月商汤的文章,引用量 200。基于 SD,任务是输入文本的动作描述,生成对应的动作序列。 已有的 moti…

CentOS Linux 7 一键安装和卸载docker docker-compose

install_docker.sh #!/bin/bash # 安装 Dockerecho "下载关于Docker的依赖环境" echo "安装yum-utils包" sudo yum -y install yum-utils device-mapper-persistent-data lvm2 echo "设置存储库" sudo yum-config-manager --add-repo http://mi…

如何在idea里进行设置实现快捷键自动生成序列化版本号

问题描述: IntelliJ IDEA 提供了强大的代码生成功能,可以自动为实现了 Serializable 接口的类生成 serialVersionUID 字段。以下为具体操作步骤,希望对大家有帮助! 步骤 1:确保类实现了 Serializable 接口 首先&…

50个渗透(黑客)常用名词及解释

目录 前言 一.渗透测试 二.网络安全 三.安全攻击 四.黑客工具 五.渗透方法 六.网络钓鱼 七.攻击技术 八.其他名词 九、网络安全学习路线 (2024最新整理) 十、学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别…

WPF之工具栏菜单栏功能区。

1&#xff0c;菜单栏&#xff0c;工具栏&#xff0c;状态栏。 1.1&#xff0c;Menu中可添加菜单分隔条<Separator></Separator>作为分割线&#xff0c;使用Separator可以通过改变其template来自定义&#xff0c;Separator是无焦点的&#xff0c;如果简单的在MenuIt…

基于Qt的Model-View显示树形数据

目标 用qt的模型-视图框架实现树型层次节点的显示&#xff0c;从QAbstractItemModel派生自己的模型类MyTreeItemModel&#xff0c;用boost::property_tree::ptree操作树型数据结构&#xff0c;为了演示&#xff0c;此处只实现了个只读的模型 MyTreeItemModel的定义 #pragma o…

2024年建筑施工特种作业人员安全生产知识试题

100分题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 单选题&#xff08;1-10&#xff09; 1.因生产安全事故受损害的从业人员&#xff0c;除…