JAVA8-Predicate的使用

此程序使用Java实现了一个图书筛选功能,能够根据书名是否包含特定字符串、书名长度及价格等条件来过滤并显示图书信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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<guolv> book,Predicate<guolv> 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<guolv> book=new ArrayList<guolv>();
        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
---------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值