四川龙网

『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?

『四川龙网摘要_『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?』用过安卓手机的同窗应当都知道:打开文件治理,可以查看到文件分类:所有图片都在图片栏里;所有视频都在视频栏里;所有音乐都在音乐栏里……等等。那这种需求在Java代率攀琅绫擎要若何做到?就须要应用到过滤器了。一、过滤器什么叫过滤器?就是根据特定的请...


『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?
文章图片

『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?
文章图片

『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?
文章图片

『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?
文章图片

『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?
文章图片

『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?
文章图片

『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?
文章图片


今天是我自学Java的第39天 。
感谢你的观看 , 谢谢你 。
话不多说 , 开始今天的学习:


用过安卓手机的同学应该都知道:
打开文件管理 , 可以查看到文件分类:
所有图片都在图片栏里;所有视频都在视频栏里;所有音乐都在音乐栏里……等等 。
那这种需求在Java代码里面要如何做到?
就需要使用到过滤器了 。
一、过滤器什么叫过滤器?
就是根据特定的要求 , 找出对应条件的文件 。
比如说 , 过滤出图片文件:


①创建一个file对象
路径填写我们现在作为例子的文件夹“F:/test\" 。
②定义一个find方法
该方法的作用为:查找文件夹中的图片文件 。
③file如果是文件
根据后缀名是否为“jpg”来判断图片文件 , 并输出该文件 。
④file如果是文件夹
因为我们要查询的是图片文件 , 那么要先遍历 。
使用file的listFilts方法 , 再使用增强for循环遍历 。
子文件里面可能同时又有文件夹和文件 , 故递归
⑤递归调用自己
find方法本身就是查找文件夹里的图片文件的 , 那么直接调用自己就好了 。
OK , 代码写完 , 运行下来发现控制台打印的都是文件夹中的图片文件 , 需求解决 。
但是现在问题来了 , 这种代码写下来水平就很差 , 因为代码的可拓展性太差了 。
什么叫可拓展性?
拓展性越强 , 需求改变时 , 需要修改的代码越少 。
就拿上述例子来说:是 , 确实解决了查找图片的需求 , 但是如果现在要查找音乐文件呢?该怎么办?如果要查找视频文件呢?
得将代码复制粘贴 , 然后将“jpg”一个个修改 , 这样的话代码就太冗余了 。
如何解决扩展性问题?
二、过滤器优化

①定义一个查找方法
设置两个参数:文件对象 , 后缀名;根据后缀名查找对应的文件 。
②如果是文件
根据isFile()方法 , 判断是否是文件 , 若是文件再进行判断 , 同时结束递归 。
③判断文件是否满足要求 。
根据提供的后缀名 , 来判断是否满足的要求 。
④如果是文件夹
先遍历 , 再递归 。
OK , 需求解决了 , 现在想查找某种类型的文件 , 直接在调用方法时设定参数就好了 。
那么问题又来了:
如果有用户要查询前缀名为a的图片 , 该怎么办?
如果有用户要查询包含“cad”的图片 , 又该怎么办?
如果有用户要查询大小小于1M的图片 , 又该怎么办?
因为用户的需求是各种各样的 , 程序员得去满足这些要求 。
我觉得写代码有一个最大的魅力:实现需求时要考虑的非常全面 , 这样在遇到问题的时候 , 能很好地去应对 。
就像网上流传的一句话:只有将用户想象成最傻最傻的人 , 考虑到各种各样的问题 , 才能写出好的代码 。
三、过滤器再次优化如何进一步优化?仔细看第二节中的代码:


③是问题的核心所在 , 因为③将代码给写死了 , endsWith方法只能用来判断后缀名 。
那怎么解决这个问题?
接口 , Java的精髓就在于接口 。
具体什么意思?
现在要查找对应的文件对吧 , 我不写具体的查找条件了 , 我就制定一个接口 , 谁要用接口 , 重写方法就好了:

  • 要根据后缀名查找文件?行 , 重写方法就好了 。
  • 要根据前缀名查找文件?行 , 重写方法就好了 。
  • 用户有任何要求 , 只需要重写接口里的方法 , 写出对应的需求就好了 。
高级程序员和低级程序员差别在哪?

声明:本文是由网友投稿,文中所阐述的观点不代表四川龙网的立场。

热点

神剑园:神剑园二期项目正在如火如荼建设中,场平已完成96%!

阅读(29)

神剑园二期位于张爱萍将近故居及达州赤军文化摆设馆东侧,占地面积约138亩,扶植内容包含战史馆、神剑馆、战史广场、神剑广场、旅客中间等。今朝,二期项目场平已完成96%,主场馆的房建基桩已完成45%,场馆的┞饭陈大年夜纲、展摆设计也在陆续的审核推动傍边...

生活

[大河早点]通知:2020年大肠癌免费筛查开始了

阅读(27)

随着生活方式以及饮食结构的变化,我国大肠癌的发病率逐年增长,且30%以上的患者就诊时已属晚期。目前研究资料认为饮食因素与遗传因素是大肠癌发病的两个主要病因。早期筛查能对预防肠癌早期病变以及预防早期肠癌具有十分重大的意义。大肠癌免费筛查的适应人...

生活

「快乐养生」守护儿童安全,近20万人观看宝安急救培训

阅读(44)

西乡街道相关负责人表示,此次亲子急救培训是健康社区建设内容之一,让居民人人会急救,急救为人人。未来将着力打造全层级的健康组织体系,打通健康共治“最后一米”,实现全民健康。急救技能是社区居民必备的健康素养,也是健康社区的一个重要折射点。针对儿...

生活

『健康零距离』强迫症的六大症状,你中招了吗?

阅读(48)

以下是强迫症出现的六大症状表现,看看你是不是那8000万中的一个。1、语无伦次:有时毫无原因的重复同样的话语。2、强迫观念:明知有些想法和表现不必要,却无法摆脱。3、强迫思考:反复思考无用或有用但很好解决的事,担心这个担心那个。4、担心自己患病:无...

生活

「快乐养生」家庭心理学(二)

阅读(19)

补天的女娲可爱的孩子是补天的女娲,能消除家庭之间的裂痕,成为父母婚姻最后一道保护伞。多关心父母,理解父母,要相信父母是天下最爱自己的人,当他们出现矛盾时,用手擦去母亲脸上的泪水,默默为父亲端上一杯热茶,用真诚的心声说出爱父亲也爱母亲,这将是化解父母...

生活

『程序员』同样是写过滤器,牛逼程序员和一般程序员的区别?

阅读(26)

用过安卓手机的同窗应当都知道:打开文件治理,可以查看到文件分类:所有图片都在图片栏里;所有视频都在视频栏里;所有音乐都在音乐栏里……等等。那这种需求在Java代率攀琅绫擎要若何做到?就须要应用到过滤器了。一、过滤器什么叫过滤器?就是根据特定的请...

生活

▲极蜂新品手电筒:高亮度多模式长续航

阅读(39)

出厂全部配件:手电筒、应用解释书,挂绳、数据线和充电器,此次比以配件中多了一个电池充电器,小编查看了手电筒机身膳绫腔有充电接口,所以才会有这个充电器,每次电量耗尽须要拆卸电池充电,可能也是这款产品的一个短板了。这款充电器:输出为4.2V/1A,支...

生活

Netflix:Netflix将取消非活跃用户订阅 彰显“一切为用户着想”

阅读(34)

产品立异主管Eddy Wu在一份声明中说:“对那些订阅了Netflix但在以前一年没有收看任何节目标用户,我们请求他们确认仍想保存会员资格。我们也会为那些已经停止不雅看Netflix的节目跨越两年的用户做同样的工作。”非活泼用户将会在本周接到相干通知或电子邮件...

生活

魅族▲orcad颜色在哪里设置?

阅读(30)

如不雅须要修改色彩,直接鼠标左键单击相对应的色彩框进行修改就可以了,右下角是体系默认色彩,点击下就恢复到体系默认的色彩。下面对几个常用的参数进行解释如下:? Alias:收集标号的色彩;? Backgroud:体系背景的色彩;? Bus:总线的色彩...

生活

英语学习▲英语学习Vlog33-a win-win plan, 机场行长

阅读(12)

【编者寄语】您好,我是机场行长!这是我的英语进修Vlog33-a win-win plan,感谢您存眷我。36岁裸辞的银行行长,誓要打造中国第一的人的技能共享app。我在首都机场住了44天,找了700家风投,我把他们都拒绝了。固然北京挺冷,但我还想保持!创业不易,您的支...

生活

#海尔#想直播带货?劝你考虑一下

阅读(15)

直播真的太火了。央视消息主进出、刘涛、陈赫、汪涵、刘敏涛、李湘、李小璐等明星都进行了本身的直播带货,晨妍、雪梨、周扬青大年夜小网红也参加到带货行列。直播带来的经济效益使得全平易近沸腾,在只用一部手机、一张嘴就能卖货的时代,人人都想分块蛋糕,...

生活

excel:Excel日期秒变星期

阅读(24)

操作效不雅如下:自定义“aaaa”今天1秒钟,今天学一招。老马将持续为您分享Excel的技能和应用,请您持续存眷。...