如何按java.Util.List <Type>中的条件搜索元素?

Osc*_*car 3 java arraylist

例如:

我在UI端有一个这样的表:

在此输入图像描述

这是包含上述所有数据的列表:

List<MyBean> myList;
Run Code Online (Sandbox Code Playgroud)

现在我想通过搜索categoryName,languageIDcategoryID使用这样的方法:

private List<MyBean> search(List<MyBean> myList, String columnName, String criteria)
Run Code Online (Sandbox Code Playgroud)

那么我只需执行以下操作即可获得符合我标准的结果:

第一例: List<Bean> results = this.search(myList, "categoryName", "Dog H");

第二个案例: List<Bean> results = this.search(myList, "categoryName", "Dog House");

(此时results列表将在两种情况下返回3个元素 - 根据上表).


是否有可能实现这一目标?正如大家们所看到的,这是一种类似于%LIKE%函数的搜索,SQL但是重点关注java.util.List

提前致谢.

Osc*_*car 6

我使用以下方法解决了我的问题:

然后我通过这种方式导入了以下命名空间:

import static ch.lambdaj.Lambda.*;
Run Code Online (Sandbox Code Playgroud)

并使用以下方法从我的标准中获得结果:

List<MyBean> results = select(myList, having(on(MyBean.class).getCategoryName(), org.hamcrest.Matchers.containsString("Dog H")));
Run Code Online (Sandbox Code Playgroud)

所以,在我传递的那行代码myList"column",criteria正如我在问题中所要求的那样.

该行的其余代码很容易理解,所以我不会写它.

希望这也有助于其他人.