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

这是包含上述所有数据的列表:
List<MyBean> myList;
Run Code Online (Sandbox Code Playgroud)
现在我想通过搜索categoryName,languageID或categoryID使用这样的方法:
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
提前致谢.
Hamcrest(hamcrest-all-1.3.jar) - http://hamcrest.googlecode.com/files/hamcrest-all-1.3.jar
Lambdaj(lambdaj-2.4-with-dependencies.jar) - http://lambdaj.googlecode.com/files/lambdaj-2.4-with-dependencies.jar
然后我通过这种方式导入了以下命名空间:
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正如我在问题中所要求的那样.
该行的其余代码很容易理解,所以我不会写它.
希望这也有助于其他人.
| 归档时间: |
|
| 查看次数: |
6143 次 |
| 最近记录: |