微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java 8 使用Lambda表达式的FileFilter示例

java.io.FileFilter接口是一个功能接口,在java 8中由@FunctionalInterface注释。

在这个例子中,我们将展示如何使用lambda表达式在FileFilter中来列出子目录的名称

文件LambdaFileFilterExample.java -

package com.jb51.cc.tutorial.lambda;

import java.io.File;
import java.io.FileFilter;

/**
 * @author jb51.cc
 */
public class LambdaFileFilterExample {
    public static void main(String[] args) {
        File dir = new File(C:/Program Files/Java/jdk1.8.0_71);

        // Filter sub-directories using anonymous class
        File[] subDirs1 = dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.isDirectory();
            }
        });

        System.out.println(-------------Using anonymous class------------);
        for (File file : subDirs1) {
            System.out.println(file.getName());
        }

        // Filter sub-directories using Lambda expression
        File[] subDirs2 = dir.listFiles((file)->{return file.isDirectory();});
        System.out.println(-------------Using Lambda Expression------------);
        for (File file : subDirs2) {
            System.out.println(file.getName());
        }
    }
}

执行上面示例代码,得到以下结果:

-------------Using anonymous class------------
bin
db
include
jre
lib
-------------Using Lambda Expression------------
bin
db
include
jre
lib

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐