我有一个由对象填充的ArrayList。
我的对象类称为Article
有两个字段;
public class Article {
private int codeArt;
private String desArt;
public Article(int aInt, String string) {
this.desArt = string;
this.codeArt = aInt;
}
public int getCodeArt() {return codeArt; }
public void setCodeArt(int codeArt) {this.codeArt = codeArt;}
public String getDesArt() {return desArt;}
public void setDesArt(String desArt) { this.desArt = desArt;}
}
我想使用该desArt
字段过滤列表,为了进行测试,我使用了字符串“ test”。
我用了来自谷歌的番石榴,它可以过滤ArrayList。
这是我尝试的代码:
private List<gestionstock.Article> listArticles = new ArrayList<>();
//Here the I've filled my ArrayList
private List<gestionstock.Article> filteredList filteredList = Lists.newArrayList(Collections2.filter(listArticles, Predicates.containsPattern("test")));
但是此代码不起作用。
这是正常的:Predicates.containsPattern()在CharSequence
s上操作,您的gestionStock.Article
对象未实现。
您需要编写自己的谓词:
public final class ArticleFilter
implements Predicate<gestionstock.Article>
{
private final Pattern pattern;
public ArticleFilter(final String regex)
{
pattern = Pattern.compile(regex);
}
@Override
public boolean apply(final gestionstock.Article input)
{
return pattern.matcher(input.getDesArt()).find();
}
}
然后使用:
private List<gestionstock.Article> filteredList
= Lists.newArrayList(Collections2.filter(listArticles,
new ArticleFilter("test")));
但是,这是相当多的代码,可以使用非功能性编程以更少的代码完成某些事情,如@mgnyp所示…
我们的表有一个嵌套的映射角色,如下所示: 现在我要查找组123中在Department1中有角色的所有文档。如何基于嵌套映射的值字段进行筛选?类似于: 我知道如何通过嵌套对象键进行筛选,但无法找到通过“对象值”进行筛选。
让我们假设有一个福克斯类,它有名字、颜色和年龄。假设我有一份狐狸的名单,我想打印出那些狐狸的名字,它们的颜色是绿色的。我想使用流来这样做。 字段: 名称:私有字符串 颜色:专用字符串 年龄:私有整数 我写了以下代码来做过滤和Sysout: 但是,我的代码中存在一些语法问题。 到底是什么问题?我该怎么整理?
问题内容: 我正在尝试通过使用搜索文本框来过滤ng-repeat中的嵌套对象。 给定以下对象: 我想做这样的事情: 这确实是行不通的。我尝试了很多事情,但无法使其正常运行。 我不想更改我的对象。 我进行了很多搜索,但没有找到符合我需要的内容。 问题答案: 我终于有了自己的问题的答案。 我只需要创建自己的过滤器,并使用正则表达式检查对象内部的属性是否具有所需的值即可: 并以这种方式在HTML中应用它
例如insert时需要忽略某个特定属性, update时只更新某些属性, 查询时需要跳过大字段等。 FieldFilter/FieldMatcher提供细致的过滤选项,包括: 黑名单(locked) 白名单(actived) 忽略空值(ignoreNull) 忽略数值0(ignoreZero) 忽略日期属性(ignoreDate) 忽略空字符串(ignoreBlankStr) 忽略数值型主键(ig
可以对搜索结果进行过滤,只显示包含特定字段值的文档。也可以创建否定过滤器,排除包含特定字段值的文档。 从 Fields 表或 Documents 表中选择要添加的字段过滤器。除了可以创建积极字段和消极过滤器外,Documents 表还可以过滤某一字段是否存在。使用过的过滤器会在 Query 栏下方显示。消极过滤器用红色显示。 从 Fields 列表中添加一个过滤器: 点击想要过滤的字段名。这里显示
Apache Commons Collections库的CollectionUtils类为常见操作提供了各种实用方法,涵盖了广泛的用例。 它有助于避免编写样板代码。 这个库在jdk 8之前非常有用,因为Java 8的Stream API现在提供了类似的功能。 使用filter()方法过滤列表 CollectionUtils的filter()方法可用于过滤列表以删除不满足传递的谓词提供的条件的对象。