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		//按照数字大小排序
      )

)

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

相关推荐
iAm_Ike4 小时前
Go 中自定义类型与基础类型间的显式类型转换详解
jvm·数据库·python
iuvtsrt4 小时前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】
jvm·数据库·python
旦莫5 小时前
AI驱动的纯视觉自动化测试:知识库里应该积累什么知识内容
人工智能·python·测试开发·pytest·ai测试
知识领航员6 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github
如何原谅奋力过但无声7 小时前
【灵神高频面试题合集06-08】反转链表、快慢指针(环形链表/重排链表)、前后指针(删除链表/链表去重)
数据结构·python·算法·leetcode·链表
deephub8 小时前
2026 RAG 选型指南:Vector、Graph、Vectorless 该怎么挑
人工智能·python·大语言模型·rag
狐狐生风9 小时前
使用 UV 创建并运行 Python 项目(完整步骤)
python·uv
噜噜噜阿鲁~9 小时前
python学习笔记 | 9.2、模块-安装第三方模块
笔记·python·学习
现代野蛮人9 小时前
【深度学习】 —— VGG-16 网络实现猫狗识别
网络·人工智能·python·深度学习·tensorflow
一个小猴子`10 小时前
Pytorch快速复习
人工智能·pytorch·python