我正在尝试过滤数组列表以删除与用户输入的一组条件不匹配的对象。该对象有 3 个列表。例如,请参见下文。
public class A {
public String [] a={"a", "b", "c"};
public String [] c={"a", "b", "c"};
public String [] d={"a", "b", "c"};
}
我正在尝试编写一种搜索此对象的方法,以查看它是否与搜索对话框中的数据输入匹配。例如,我想要数组 a 中有"a"、数组 b 中有"c"和数组 c 中有 * 的所有对象。
for(int i = 0; i < products.length; i++)
{
reactionData = select(reactionData, having(on(A.class).a,Every.everyItem(containsString(products[i]))));
}
我想为我搜索的每个数组做这样的事情,但它似乎效率低下。更不用说每次搜索时都会替换 reactionData 数组。
如果有人可以帮助我解决这个问题,或者可能指出我一些有用的网站,解释如何使用 lambdaj 的 hamcrest,那将是理想的。
编辑
output = filter(having(on(Reaction.class).getChemicalProducts(), hasItems(products)), reactionData);
上面的匹配器必须匹配产品中的每个项目。我正在寻找它来匹配产品中的任何项目
以下行将保留products
列表中至少一种化学产品的所有实例:
output = filter(having(on(Reaction.class).getChemicalProducts(), hasItem(isIn(products))), reactionData);