我有一个Product类,其中包含名为(String)代码、(String)名称、(Double)价格和(Date)到期的字段,每个都有自己的getter和setter方法。我有另一个类ListProduct,它包含一个名为productList的字段List。下面是一个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表达式或匿名方法。
您可以使用番石榴并传递给此方法谓词:
new Predicate<Product>() {
@Override
public boolean apply(Product input) {
// here check for desired conditions
}
};
然后,您可以使用Iterables来过滤您的收藏:
return Iterables.filter(productList, predicate);
所以你的方法看起来会像:
public List<Product> SearchItemByName(ListProduct list, Predicate<Product> predicate) {
return Lists.newArrayList(Iterables.filter(list.productList, predicate));
}
searchItemByName(list, new Predicate<Product>() {
@Override
public boolean apply(Product input) {
// here check for desired conditions
}
});
将条件重构为接口:
public interface ProductAccepter {
public boolean accept(Product product);
}
public List<Product> searchItem(ListProduct list, ProductAccepter accepter) {
List<Product> products = new ArrayList<Product>();
for (Product prod : list.productList) {
if (accepter.accept(prod))
products.add(prod);
}
}
return products;
}
然后调用它,您可以使用一个匿名类:
final String name = "foo";
List<Product> products = searchItem(list, new ProductAccepter() {
public boolean accept(Product product) {
return product.getName().toLowerCase().contains(name.toLowerCase());
}
});
我编写了一个reindex方法,可以执行以下操作: 它确实起到了作用,但我现在确定,仅仅删除然后创建一个索引是否有意义。如何改进此方法?
我有一个,它显示了一个包含的。我正在使用从SQL加载数据,所有数据都显示得很好。 我想知道的是,我的工具栏中有一个搜索图标在中膨胀,当用户单击它并输入数据时,它应该在中的中进行筛选。 我已经在中实现了,还实现了和方法。我只是不知道如何直接使用中的搜索来过滤中的。
我有一堆pdf文件,有些是可搜索的常规pdf文件,有些是不可搜索的文件的扫描版本。我想提取每个pdf的内容。为了提取常规PDF的内容,我使用Apache Tika,为了从不可搜索的PDF中提取内容,我使用tesseract ocr。然而,我需要区分哪个pdf是nornal pdf,哪个不是。有办法吗?
问题内容: 我编写了这个小型测试应用程序来演示该问题,即当用户按下键盘上的搜索按钮时,可搜索活动未启动。 我一直在遵循开发人员指南,但是从我的网络搜索中 发现,官方开发人员指南缺少一些要点。 从我的SO搜索(没有帮助): 参考1:通过在清单中的元素中添加标签来解决。我还查看了示例“用户字典”的清单(我不知道在哪里可以在线找到示例,或者我可以链接到它)。该标签在application元素中。 参考2
我正在使用Hibernate Search/Lucene Intégration开发一个J2E应用程序。我索引文档(和其他实体),并希望对其进行不区分重音的搜索(内容和类的字段)。 这样做好吗?是否没有param或conf属性让FrenchAnalyzer忽略重音? 谢谢
我编写了这个小型测试应用程序来演示问题,即当用户按下键盘上的搜索按钮时,可搜索的活动未启动。 我一直在关注开发人员指南,但从我的网络搜索中,发现官方开发人员指南遗漏了一些要点。从我的SO搜索(没有帮助): > < li> 参考1:通过在清单的元素中添加标记来解决。我还查看了示例“用户字典”的清单(我不知道在网上哪里可以找到示例,或者我会链接到它)。这个标签在application元素中。 引用2: