在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?

10-07 13:52
查看更多