检查每个对象,满足第一个条件时 return 为真,否则 return 为假
check each object, return true when the first condition is met, else return false
我有一个很好用的方法。这是它的样子。
private ArrayList<Car> carsInStore ; //in car class have setter/getter/quals/Constructor.
public boolean checkIfcarInStore(Car c) {
for (Car car : carsInStore) {
if(car.equals(c)){
return true;
}
}
}
我想将其切换到 Lambda。
但是我不清楚if
(条件)returntrue
或者returnfalse
外面怎么填
而且我知道我也可以在直播中做到这一点。谁能举个例子?
如果您真的想使用 lambda
,这应该有效,否则您可以在评论中找到答案。
private ArrayList<Car> carsInStore ;
public boolean checkIfcarInStore(Car c) {
return carsInStore.stream().anyMatch(c::equals);
}
}
您可以将方法 checkIfcarInStore()
替换为 Predicate
,它是一个 函数接口 ,表示布尔条件,可以实现为 lambda 表达式:
Predicate<Car> isInStore = car -> carsInStore.contains(car);
或作为方法参考:
Predicate<Car> isInStore = carsInStore::contains;
如果根据您的作业说明,您需要一个方法 checkIfcarInStore()
,可以将 predicate 声明为一个字段并在方法内部使用:
private ArrayList<Car> carsInStore ;
private Predicate<Car> isInStore = car -> carsInStore.contains(car);
public boolean checkIfCarInStore(Car car) {
return isInStore.test(car);
}
我有一个很好用的方法。这是它的样子。
private ArrayList<Car> carsInStore ; //in car class have setter/getter/quals/Constructor.
public boolean checkIfcarInStore(Car c) {
for (Car car : carsInStore) {
if(car.equals(c)){
return true;
}
}
}
我想将其切换到 Lambda。
但是我不清楚if
(条件)returntrue
或者returnfalse
外面怎么填
而且我知道我也可以在直播中做到这一点。谁能举个例子?
如果您真的想使用 lambda
,这应该有效,否则您可以在评论中找到答案。
private ArrayList<Car> carsInStore ;
public boolean checkIfcarInStore(Car c) {
return carsInStore.stream().anyMatch(c::equals);
}
}
您可以将方法 checkIfcarInStore()
替换为 Predicate
,它是一个 函数接口 ,表示布尔条件,可以实现为 lambda 表达式:
Predicate<Car> isInStore = car -> carsInStore.contains(car);
或作为方法参考:
Predicate<Car> isInStore = carsInStore::contains;
如果根据您的作业说明,您需要一个方法 checkIfcarInStore()
,可以将 predicate 声明为一个字段并在方法内部使用:
private ArrayList<Car> carsInStore ;
private Predicate<Car> isInStore = car -> carsInStore.contains(car);
public boolean checkIfCarInStore(Car car) {
return isInStore.test(car);
}