27_Scala功能函数

文章目录

功能函数

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默认情况下升序排序

复制代码
//    sortBy
    var list4 = List(2,0,4,8)
    println(

      list4.sortBy(
      num => num		//按照数字大小排序
      )

)

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

相关推荐
a9511416422 分钟前
Redis如何利用Redisson处理并发击穿
jvm·数据库·python
郝学胜-神的一滴7 分钟前
[ 力扣 1124 ] 解锁最长良好时段问题:前缀和+哈希表的优雅解法
java·开发语言·数据结构·python·算法·leetcode·散列表
戴西软件8 分钟前
戴西CAxWorks.VPG车辆工程仿真软件|假人+座椅双调整 汽车仿真效率直接拉满
java·开发语言·人工智能·python·算法·ui·汽车
2401_887724508 分钟前
如何防止SQL注入利用存储过程_确保存储过程不拼字符串.txt
jvm·数据库·python
财经资讯数据_灵砚智能9 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月16日
大数据·人工智能·python·信息可视化·自然语言处理
林会10 分钟前
DeerFlow本地部署!调用本地大模型
python·开源
m0_7164300713 分钟前
Laravel 迁移中外键约束错误的成因与修复方案.txt
jvm·数据库·python
2201_7568473314 分钟前
CSS如何利用CSS变量管理间距_统一定义盒模型数值
jvm·数据库·python
Greyson115 分钟前
PHP怎么用array_unique去重数组元素【方法】.txt
jvm·数据库·python
weixin_5806140016 分钟前
Bootstrap制作后台管理系统布局 Bootstrap如何搭建Dashboard框架.txt
jvm·数据库·python