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

)

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

相关推荐
维克兜率天14 分钟前
【维克】指数调整:哪些股票会被“强制买入“?
人工智能·python·算法
come1123424 分钟前
Codex 下不同场景 模式选择
python
kingx31 小时前
Windows Server 2008 应急加固实战:7 项入侵痕迹排查与修复
数据库·windows·提权·应急响应·加固
神也畏惧菠萝1 小时前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
言乐61 小时前
通过 3D 动画直观演示球形瓶内可滑动半圆机构在倾倒时防粘盖、回正时刮膏体的运动学过程
python·3d·django·virtualenv·pygame
quantdash_cc1 小时前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
小熊恋旧1 小时前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python
威哥爱编程2 小时前
Python 智能体开发实战 05:一问教材内容它就编?先把答案从你自己的资料里检索出来
python·agent
java_prinln2 小时前
RAG 面试题介绍
python·agent
威哥爱编程2 小时前
Python 智能体开发实战 06:一个函数里塞了八百行?用状态机把批改流程拆成能回退的步骤
python·agent