我有一個產品類,其字段名爲(字符串)代碼,(字符串)名稱,(雙)價格和(日期)到期每個自己的getter和setter方法。我有另一個類ListProduct包含名爲productList的字段列表。下面是一個ListProduct類,我創建了一個返回按產品名稱搜索的所有產品的方法。可重複使用的搜索方法
public List<Product> SearchItemByName(ListProduct list,
String name) {
List<Product> products = new ArrayList<Product>();
for (Product prod : list.productList) {
if (prod.getName().toLowerCase().contains(name.toLowerCase())) {
products.add(prod);
}
}
return products;
}
我需要知道的是如何使上面不僅可以通過它的名字搜索的列表,如使用lambda表達式或匿名方法的可重複使用的方法。
什麼是'lProduct'在'新的ArrayList()',和你有使用Java 8中的選項? –
skiwi
僅在Java 8中支持Lambdas。Java 8已經定義了[Predicate](http://download.java.net/jdk8/docs/api/javax/sql/rowset/Predicate.html)接口和[methods] (http://download.java.net/jdk8/docs/api/java/util/stream/Stream.html#filter-java.util.function.Predicate-)使用它來做你想做的。如果你不使用Java 8,那麼考慮使用Guava。 –