JAVA8-Predicate的使用

public class guolv {
    String name;
    String author;
    int price;
    public guolv(String name,String author,int price) {
        this.name=name;
        this.author=author;
        this.price=price;
    }
    public static void showbook(List book,Predicate p) {
        for (guolv guolv : book) {
            if (p.test(guolv)) {
                System.out.println(guolv.name+"  "+guolv.author+"  "+guolv.price);
            }
        }
    }
    public static void main(String[] args) {
        List book=new ArrayList();
        book.add(new guolv("英语书", "英语老师", 20));
        book.add(new guolv("语文书", "语文老师", 20));
        book.add(new guolv("自传", "若尘", 99999));
        book.add(new guolv("书名是5个字以上的英语书", "特别吊的英语老师", 100));
        book.add(new guolv("java编程思想", "java 大佬", 100));
        System.out.println("书名包含java的");
        System.out.println("---------------------");
        showbook(book, b->b.name.contains("java"));
        System.out.println("---------------------");
        System.out.println(" 书名超过5个字的书");
        System.out.println("---------------------");
        showbook(book, b->b.name.length()>5);
        System.out.println("---------------------");
        System.out.println("单价超过20且作者名字是两个字是");
        System.out.println("---------------------");
        showbook(book, b->b.name.length()==2&&b.price>20);
        System.out.println("---------------------");
    }
}

结果

书名包含java的
---------------------
java编程思想  java 大佬  100
---------------------
 书名超过5个字的书
---------------------
书名是5个字以上的英语书  特别吊的英语老师  100
java编程思想  java 大佬  100
---------------------
单价超过20且作者名字是两个字
---------------------
自传  若尘  99999
---------------------

你可能感兴趣的:(JAVA笔记,JAVA学习中的问题,JAVA代码记录)