Java Lambda 匹配 anyMatch allMatch noneMatch
public class Menu {
private String name;
private Double price;
private Double kilo;
private String type;
public Menu() {
}
public Menu(String name, Double price, Double kilo, String type) {
super();
this.name = name;
this.price = price;
this.kilo = kilo;
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public Double getKilo() {
return kilo;
}
public void setKilo(Double kilo) {
this.kilo = kilo;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
Menu pork = new Menu("猪肉", 9.9, 10.0, "肉类");
Menu beef = new Menu("牛肉", 38.8, 5.0, "肉类");
Menu chicken = new Menu("鸡肉", 6.5, 30.0, "肉类");
Menu tomato = new Menu("土豆", 3.5, 30.0, "蔬菜");
Menu potato = new Menu("西红柿", 7.5, 20.0, "蔬菜");
Menu apple = new Menu("苹果", 3.5, 20.0, "水果");
Menu orange = new Menu("橙子", 4.0, 20.0, "水果");
List
anyMatch检查谓词是否至少匹配一个元素
boolean isVegetables = menuList.stream().anyMatch(menu -> menu.getType().equals("蔬菜"));
System.out.println(isVegetables);
true
allMatch检查谓词是否匹配所有元素
boolean isAllVegetables = menuList.stream().allMatch(menu -> menu.getType().equals("蔬菜"));
System.out.println(isAllVegetables);
false
noneMatch确保流中没有任何元素与给定的谓词匹配
boolean isNoneDrink = menuList.stream().noneMatch(menu -> menu.getType().equals("酒水"));
System.out.println(isNoneAllVegetables);
true



