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("---------------------");
}
}
结果
书名是5个字以上的英语书 特别吊的英语老师 100