迭代器、比较器、文件过滤器

Java类库中有为满足不同需求而设计的不同的器,实际上就是不同的接口。最近学习了比较器、迭代器和文件过滤器这三个接口,我根据自己的理解做了一个不成熟的总结,假如有很多不准确甚至是错误的地方,希望大家多多赐教!

    这三个接口在设计的时候,并不是只是声明一个接口以及它里面的方法,也在需要特定类“配合”这些接口来完成某些功能,特定类指的就是需要使用这些接口完成某项功能的类(比如Tree结构集合要按照一定规则排序而使用比较器排序,这里Tree结构集就是我说的特定类,比较器就是它需要用的接口)。

    什么意思呢?打个不恰当的比方,这三种接口就相当于基站,而特定的类就相当于各种手机,我手机想要通过基站来通讯,不能只让基站发送信号,你手机却没有接受信号的功能,所以手机需要配合基站。这三个接口和这些特定类的关系就类似基站和手机。

    这里通过File类和文件过滤器来说,File类里有list(FilenameFilter filter)方法来接受文件过滤器的对象,File类的list(FilenameFilter filter)和文件过滤器接口中的accept(File file,String name)配合共同完成文件的过滤。同理,另外两种接口和其特定类也是类似的(不一定是如File类和文件过滤器一样是通过构造方法获取接口对象的方式来完成,这里我就不详细说明了)。对于文件过滤,或许每次需要过滤的文件不一样,所以才不在File类里定义一个方法实现,不然每次有新需求都得重写。而通过过滤器接口和File类的配合,每次只需要按照不同需求实现过滤器接口的方法就可以了。这里并没有详细说这三个接口配合相应的类如何实现功能的。我只是想表达为什么要设计接口和它可能的设计思想是什么(可能我理解的也不对)。

    

原文地址:https://www.cnblogs.com/jeenyung/p/9103074.html

时间: 2024-08-28 08:55:57

迭代器、比较器、文件过滤器的相关文章

java学习笔记(2):获取文件名和自定义文件过滤器

//自定义文件过滤器import java.io.File; import javax.swing.filechooser.*; public class JavaChooser extends FileFilter{ @Override public String getDescription() { return ".java"; } @Override public boolean accept(File f) { // TODO Auto-generated method st

Windows 10中新的文件管理方式:快速访问、固定文件夹、文件过滤器和文件分组

我的工作电脑更新到Windows 10已经一段时间了,在这段使用过程中我切身体会到了新的Windows中文档管理带来的便利性,接下来我就把我的使用经验和体会分享一下: 目录: 快速访问 文件过滤器和文件分组 常用文件夹固定到开始屏幕 结束语:你用这些功能来提高工作效率了吗? 阅读全文

文件过滤器FileFilter

场景:     今天给同事调试动态扫描文件夹中的所有文件,并且判断文件名称中包含有下划线的文件, 再把加有下划线的文件删除.针对这样的需求,开始写代码调试,在调试过程中怎么也找不到包含下划线的文件(实际上存在),最后分步调试发现了问题的所在,原来实现了FileFilter接口,但是没有修改文件过滤器的规则. 问题的解决: 于是更改过滤规则,列出指定关键字的目录和文件.在接口FileFilter 的accept()方法中设定规则,最终解决了问题.小demo的代码如下所示: import java.

45、文件过滤器FilenameFilter

文件过滤器FilenameFilter JDK中提供了一个FilenameFilter的接口用来实现文件过滤功能,可以使用这个文件过滤器来实现上一节中的问题. File类中有一个带参数的list方法 public String[] list(FilenameFilter filter) 上面的方法中接收FilenameFilter对象,FilenameFilter是一个接口,里面有一个方法 boolean accept(File dir, String name); 要想使用文件过滤器的话需要重

MFC中文件对话框类CFileDialog详解及文件过滤器说明

当前位置?:?首页???文章分类?:? 开发 ??? MFC中文件对话框类CFileDialog详解及文件过滤器说明 上一篇 利用OpenCV从摄像头获得图像的坐标原点是在左下角 下一篇 Word中为图表生成目录 域名迁移公告 2017年12月20日起,本博客迁移到新域名madaimeng.com,旧域名masikkk.com不再更新内容,但将永久保持可访问! 阅读 大专栏  MFC中文件对话框类CFileDialog详解及文件过滤器说明busuanzi_value_page_pv"> 评

File文件过滤器(简单小示例)

File文件过滤器,过滤出想要的文件: 示例代码: package file; import java.io.File; import java.io.FilenameFilter; /** * @Author YangHe * @Date 2020/4/12 21:45 * 文件过滤器 */ class MyFilter implements FilenameFilter{ @Override public boolean accept(File dir, String name) { //判

php 利用迭代器遍历文件夹

1.遍历文件夹 scandir 2.原生的迭代器Iterrate $scan_dir = "txtDir"; //下面会遍历txtDir 下面所有字文件夹中的文件哦 $dir_iterator = new RecursiveDirectoryIterator($scan_dir); $iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST); //$ite

File类 文件过滤器

创建过滤器 1 package cn.zmh.File; 2 3 import java.io.File; 4 import java.io.FileFilter; 5 // 实现FileFilter类的功能 6 public class MyFilter implements FileFilter { 7 8 @Override 9 public boolean accept(File pathname) { 10 String name = pathname.getName(); 11 re

java文件过滤器

java中有一个FilenameFilter的接口,能够过滤得到指定类型的文件或者目录,其中必须重写accept(File file,String path)方法 public class DirFilter implements FilenameFilter{ private String type; public DirFilter(String tp){ this.type=tp; } public boolean accept(File fl,String path) throws Ex