在C++中,我可以将find_if
与谓词一起使用以在容器中查找元素。 Java中有类似的东西吗?集合上的contains
方法使用等于,并且无法参数化。
最佳答案
您可以使用Predicate中的Google Collections。这是tutorial及其示例:
final Predicate<Car> expensiveCar = new Predicate<Car>() {
public boolean apply(Car car) {
return car.price > 50000;
}
}
List<Car> cars = Lists.newArrayList();
cars.add(new Car("Ford Taurus", 20000));
cars.add(new Car("Tesla", 90000));
cars.add(new Car("Toyota Camry", 25000));
cars.add(new Car("McClaren F1", 600000));
final List<Car> premiumCars =
Lists.immutableList(Iterables.filter(cars, expensiveCar));
您还可以查看此线程:What is the best way to filter a Collection?