00:00
下面呢,要给大家讲一个叫做过滤,OK,那过滤在我们这个开发中用的是非常多的,你想一想,我们在进行同学们学这个卡夫卡的时候,你这个数据要进行去杂志。肯定就会用到这种过滤机制,那过滤呢,就是我们那个函数是这个编程就是把一个集合交给另外一个函数,那个函数指定了哪些数据是我要的,哪些数据不是我要的,这就是过滤filter。啊,Fair的意思就将符合要求的数据筛选,或者叫放入到新的集合中,那么我们现在看一个小案例,这个案例呢,仍然是一个names,啊内S,然后呢,我要求集合中首字母为A的筛选到新的集合,不是A的直接被干掉,那也就说只有爱丽丝会返回到新的集合中,这就有点类似于我们什么感觉呢?就相当于老师写的这段代码里面,它在进行遍历每一个元素的时候。
01:00
他要怎么做呢?他要先判断,如果你这个便利出来的item是一个什么样的条件,比如说假如啊,我要进行过滤式,这个item必须大于十我才精确,假如啊,那这样子,其实它这个逻辑里面仅仅加了一层。判断而已,那么当然这个这个判断呢,可能不是我这样写的,不是这样写的,它如果说放在我们这个过滤,它应该是这样写的,它其实是把这个F函数。他这个是把你传入这个函数做一个判断条件,能理解吗?就是你这边肯定会传进去你的这个。梦。就是把你的你这遍历出来的item传到这边去判断它如果为真。我写一段这个模拟代码,我不写全了啊,没有那么时间了,如果为真,我就相当于把这个item直接扔进去。理解这意思吗?应该很好理解,所以说他他这个呃开一者还是很厉害的,他是把它分开处理,一般他不会把一个逻辑,比如说把这个过滤,把这个扁平化,把这个这个map平映射放在一个函数,所以它是先处理一步,再处理第二步,再处理三步。
02:14
他不是把它放在一个一堆里面,真的,所以他把这个,把这个各种操作呢,他把它直接分散开了,你要干什么事,先干这件事,再干另外一件事,所以你看这个逻辑相说,我在便利的时候,先判断,用我们传入这个函数来判断你这个,你这个参数或者你这个元素满不满足的要求,如果满足我就加到这个新集合,如果不满足就。过滤了。哎,大家所以说这个地方一定会返回一个真和假,也就是说你在过滤的时候,这个函数必须返回的就不是一个整数了,而应该是一个true或者false。好了,同学们,我们再把这个来给大家演示一下,代码非常简单啊,嗯,直接拿过来写一把就完了,这个叫集合元素过滤质filter。
03:01
那么这个呢,就就叫过滤,我们直接拿来为我所用。各位A少了一个集合啊。好,集集合,OK,好,各位同学,我们把它拿来写到这里,来一个标题二,那现在讲的是集合的过滤,那做了一个基本说明。哎,基本的说明来玩一把。那何为这个过滤呢?何为过滤呢?就是我这写的这么一个非常简单的一句话就OK了。好,我们接着来做一个案例,这是我们的什么案例演示,那么案例演示呢?我们先把这个需求给同学们写到这。这是我们对题的一个要求。好,现在我们来编写一下啊,这个应该是特别的简单。特别难,我就直接写一写就完了,那新建一个。新建一个文件,取一个名字叫filter DEMO OK filter file filter filter。
04:04
DEMO。好,01FILTER,那就写个object,然后呢,里边我们写上一个主函数能理解好,现在呢,人家的要求已经说的非常明确了,就是对它进行一个处理,那这里面有一个函数需要同学们知道,就是呃呃,刚才我们已经讲了啊,我就直接先写到这,就对它过虑。啊,要求就是。筛选出啊,筛选大写,呃选出选出这个首字母,首字母为大写的A的这个元素。好,那么现在呢,先写一个函数啊DF,比如说我们这个函数就叫做叫大的A吧,就随便写一个啊。很简单,Start s star,然后呢,你肯定传的是一个字符串,因为我对字符串进行遍历的嘛,但说老师我要简单一点,写个N例也可以啊,那我这儿因为我明确是个字符串,所以我直接。
05:04
啊是个字符,它应该是我看看啊哦,是字符串啊是字符串对不对,是最。老使俊,呃,第二。因为你是过滤,根据刚才我们写底层代码,它111定会返回一个波,就必须返回波了。那布尔值怎么返回呢?怎么知道它是大写的呢?很简单,在前面你们学过一个函数叫start,哎,Start的。大的什么呀?大为是吧,这个就行了,就以什么开头的,那么我们强制要求为大写的A。啊,这个如果为真就进到里面去,那简单了,咱们写一个代码叫names,点什么呢?就是ther。The,然后里面你看这个函数写的很清晰啊,人家要要求传的东西是什么,先看清楚。诶这地方没,诶这里看到了啊,看到一点,看这里传一个尺寸,返回一个波,这你这个传入的函数就必须满足这种需求,那当然我是大的A就满足你的需求。
06:06
放进去写,写成了,好,我们接收一个新的这个集合。啊,再说一遍啊,你这个过滤对内是没有任何影响啊,同学们千万不要搞蒙圈了,老师诶,你这因为我在写底层代码,我从来没有动过内S本身。所以你内仍然是爱丽丝,鲍姆和link,只是返回呢,只有爱丽丝这一个人了,那大家再测一下。啊内。啊,Names本身没有变化,所以说我把也给同学们看一下啊。好,然后呢,我们再把内二也输出来一下。诶,走运行一下,请看执行的效果。那这个时候呢,第一个仍然是爱丽丝,Bob和link没有变化,这个只留下了一个爱丽丝,好,这就是我们这个叫做过滤操作的一段代码,好,同学们把代码给大家板书过来。非常简单。好,我把这个代码呢,写到这里就O了,这叫元素的过滤操作,就讲到这里。
我来说两句