Scala 容器基础(十七):使用filter方法过滤集合元素
来源:互联网 发布:illustrator cs6 mac 编辑:程序博客网 时间:2024/06/08 11:31
来源:https://my.oschina.net/nenusoul/blog/658238
Problem
你想要筛选出集合中的一些元素形成一个新的集合,这些元素都是满足你的筛选条件的。
Solution
在10.3节中,“选择一个集合方法来解决问题”,大量的方法可以被用来过滤输入集合的元素然后生成新的集合。这一节中展示了filter方法。那么如何正确使用集合的filter方法呢,首先你需要给filter方法一个判断条件或者返回true/false的函数,这个判断条件(函数)的输入类型要与集合元素类型一致,返回值是布尔型的。filter方法会对集合的每一个元素调用判断条件,当条件为true的时候则元素进入新的集合否则会被过滤掉。你还需要使用一个变量来指向新的集合。
下面这个例子展示了,如何通过取模算法从一个输入集合中筛选出偶数并形成一个新的集合:
正如上面展示的,filter方法返回了所有使假设条件(_ % 2 == 0)为真的集合元素组成的新集合。还有一个方法filterNot,可以返回所有使假设条件返回false的元素组成的新集合。
filter方法对比其他方法的特点有:
filter方法遍历整个集合,其他的方法都只是遍历一部分元素
filter方法允许你提供一个判断条件(函数),来过滤集合元素
如何筛选集合元素完全取决于你的算法,接下来的例子展示了一些方法来过滤字符串列表:
当你的判断逻辑复杂,没有办法一行写完,我们可以在filter内部使用多行的判断逻辑:
你同样可以定义一个判断函数,然后把这个函数传给filter方法:
接下来的这个例子告诉你,你可以多次连续调用filter方法:
我们在一个文件中读取所有的行,转换为一个List,每行是一个元素,然后我们把空行过滤掉,然后再把#开头的过滤掉。看起来是一个统计shell脚本代码行数的算法。
使用filter的两个关键点是:
你的算法需要能正确判断出你所需要的元素,并返回true,对于你不需要的数据则返回false
记得用一个新的变量指向filter方法返回的集合,因为filter方法并不会对原集合做改变
- Scala 容器基础(十七):使用filter方法过滤集合元素
- spark scala 对dataframe进行过滤----filter方法使用
- 自定义Filter过滤集合中的元素
- Scala基础入门(十一 ) Vector集合容器使用介绍
- 使用Hibernate过滤集合元素的两种方法
- 使用Hibernate过滤集合元素的两种方法
- scala使用reduce和fold方法遍历集合的所有元素
- spark filter过滤rdd元素
- scala基础------>定义容器
- 使用filter过滤请求
- 使用filter过滤请求
- 使用filter过滤请求
- scala基础语法-集合
- scala的集合基础
- jquery之管理包装元素集合(筛选元素包装集之整理包装集的内容,not()方法与filter()方法的使用)
- 使用scala容器
- 集合根据条件过滤元素
- php filter安全过滤方法
- Linux系统管理-工作管理
- javascript获取html元素的几种方法
- LeetCode-86.Partition List
- c#设计模式==代理模式
- 权限路径 不同修饰词下
- Scala 容器基础(十七):使用filter方法过滤集合元素
- 深入理解c#异步函数
- 自学java前5天的内容
- python基础2之数值类型---字符串
- struts2_文件下载
- Java输入输出
- A. I'm bored with life
- Java代码规范、基本类型和实例演练
- 剑指offer面试题[49]-把字符串转化为整型