当前位置: 首页 > 知识库问答 >
问题:

Java list.contains(arraylist,字段值等于x)

祁霖
2023-03-14

使用下面的代码,我可以检查对象的list是否包含匹配特定值的字段。

public boolean containsName(final List<MyObject> list, final String name){
    return list.stream().filter(o -> o.getName().equals(name)).findFirst().isPresent();
}

但是,只有当O.getName()返回字符串时,这才起作用。我正在尝试修改代码,以便在MyObject包含ArrayList 并且名称可以匹配列表中的任何元素时能够正常工作。类似这样的事情:

public boolean containsKeyword(final List<KeywordPOJO> list, final String keyword){
    return list.stream().filter(o -> o.getKeywordList().equals(keyword)).findFirst().isPresent();
}

目前,Eclipse抛出警告:equals()的参数类型不太可能:String似乎与ArrayList 无关(因为keyword是一个字符串,getKeywordList()返回ArrayList )

谢谢!

共有1个答案

宗涵蓄
2023-03-14

您可以简单地使用list.contains:

o -> o.getKeywordList().contains(keyword);

另外,可以使用stream.anymatch简化表达式:

public boolean containsKeyword(final List<KeywordPOJO> list, final String keyword){
    return list.stream().anyMatch(o -> o.getKeywordList().contains(keyword));
}
 类似资料:
  • 问题内容: 我想检查一个是否包含一个具有特定值的字段的对象。现在,我可以使用一个循环来检查,但是我很好奇是否有更高效的代码。 类似的东西; 我知道上面的代码什么也做不了,只是为了大致演示一下我要实现的目标。 另外,为了澄清,我不想使用简单循环的原因是,这段代码当前将进入一个位于循环内的循环内。为了可读性,我不想一直在这些循环中添加循环。所以我想知道是否有简单的替代方案。 问题答案: Streams

  • 我想检查是否包含一个对象,该对象具有一个具有特定值的字段。现在,我可以使用一个循环来进行检查,但我很好奇是否有更高效的代码。 类似的东西; 我知道上面的代码没有做任何事情,它只是大致演示我正在尝试实现的东西。 另外,为了澄清一下,我不想使用简单循环的原因是,这段代码当前将在循环中运行,循环中的循环中的循环中的循环中的循环中的循环中的循环中的循环中的循环中的循环中的循环中的循环中的循环中的循环。为了

  • 问题内容: 对数组列表中的等效方法有一个疑问,下面的代码将其剪裁为true。 有谁知道它为什么给出真正的答案。 问题答案: 在文档中查找的equals()方法 当且仅当指定对象也是一个列表,并且两个列表具有相同的大小,并且两个列表中所有对应的元素对相等时,才返回true。 由于没有元素,因此满足所有条件。 如果将元素添加到两个列表中( 每个 元素 至少一个 ),以查看所需的输出。

  • 我有1D临时arraylist和2D原始arraylist,我在循环期间更新了临时arraylist,在循环结束时,我需要使原始arraylist与临时arraylist的内容相等,如下所示: 我知道有些方法

  • 问题内容: 在Python 2.x中,当您要将一个方法标记为抽象时,可以这样定义它: 然后,如果您忘记覆盖它,则会收到一个很好的提醒异常。是否存在将字段标记为抽象的等效方法?还是在您可以做的所有工作中在类文档字符串中说明? 起初我以为可以将字段设置为NotImplemented,但是当我查看它的实际用途(进行大量比较)时,它似乎很脏。 问题答案: 是的你可以。使用装饰器。例如,如果您有一个名为“e

  • 问题内容: 如何查询或过滤一个字段不等于另一个字段?即,其中document1.city1.name不等于document1.city2.name。 这个的一些版本? http://www.elasticsearch.org/guide/zh- CN/elasticsearch/reference/current/search-request-script- fields.html 问题答案: 是