集合过滤 Filter 操作 | 学习笔记

简介: 快速学习集合过滤 Filter 操作

开发者学堂课程【Scala 核心编程 - 进阶集合过滤 Filter 操作学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9051


集合过滤 Filter 操作


内容介绍:

一、基本介绍

二、应用案例

三、案例演示


一、基本介绍

过滤在开发中非常常见。例如,在 Kafka 时就会用到这种过滤机制,过滤就是将一个集合交给另一个函数,该函数指定哪些数据是需要的,哪些数据是不需要的,这就是 filter

filter:

将符合要求的数据(筛选)放置到新的集合中


二、应用案例

将 val names = List("Alice","Bob", "Nick")集合中首字母为'A'的筛选到新的集合。也就是只有 Alice 会返回到新集合中。

思考:

如果这个使用传统的方式,如何完成?

以下部分代码作为演示说明,在下面的代码逻辑中,仅仅加了一层判断,就是让 item 大于10

def map(f:Int=>Int):List[Int]={

//遍历集合

for(item<){  

if(item>10){    

//遍历后的 item 大于10

list2=list2:+f(item)

}

}

list2

}

另一种判断方法:

在遍历时,用传入的函数来判断,传入的元素是否满足该函数的要求,如果满足则加入新集合,反之,该元素被过滤,另一种判断的写法如下

def map(f:Int=>Int):List[Int]={

//遍历集合

for(item<){  

//将传入的函数作为一个判断条件,如果为真, item 进入 for 循环  

if(f(item)==true){    //此处说明该函数返回为 true 或 false

list2=list2:+item

}

}

list2

}


三、案例演示

object FilterDemo01 {

def main(args : Array [ string]): unit = {

/*

选出首字母为 A 的元素

*/

val names= List("Alice","Bob", "Nick")

val names2= names.filter(startA)

println("names=" + names)

println("names2=" + names2)

}

def startA(str:String: Boolean = {

s.startsWith("A")  

}

}

运行结果为:

names=List(Alice,Bob,Nick)

names2=List(Alice)

相关文章
|
9月前
数组双重去重的方式三filter
数组双重去重的方式三filter
29 0
|
6月前
ES6系列笔记-数组方法filter(过滤)
ES6系列笔记-数组方法filter(过滤)
38 1
|
11月前
如何对数组进行一个过滤操作map
如何对数组进行一个过滤操作map
68 0
|
数据采集 Python
如何使用reduce(),filter()对数据进行求积,去除None,空字符串
如何使用reduce(),filter()对数据进行求积,去除None,空字符串
|
8天前
|
关系型数据库 分布式数据库 PolarDB
使用 PolarDB 开源版 bloom filter index 实现任意字段组合条件过滤
背景PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力.本文将介绍使用 PolarDB 开源版 bloom filter index 实现任...
17 0
|
存储 SQL 并行计算
使用 PolarDB 开源版 bloom filter index 实现任意字段组合条件过滤
PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力. 本文将介绍使用 PolarDB 开源版 bloom filter index 实现任意字段组合条件过滤
239 0
|
API 开发者 索引
过滤 filter|学习笔记
快速学习过滤 filter。
57 0
过滤 filter|学习笔记
|
开发者 索引
过滤 filter | 学习笔记
快速学习过滤 filter
58 0
|
Java 安全 NoSQL
Guava中针对集合的 filter和过滤功能
Guava中针对集合的 filter和过滤功能
2569 0
Drools规则引擎-判断集合(List)是否包含集合
Drools规则引擎-判断集合(List)是否包含集合
433 0