Java 如何使用Google Guava查找列表中是否存在的元素?

Java 如何使用Google Guava查找列表中是否存在的元素?,java,collections,guava,Java,Collections,Guava,我有一个列表,我需要找到特定字符串是否存在于列表中 例如: 字符串str=苹果 List listObject=Lists.newArrayListapple、橙色、香蕉色 我需要使用Google Guava查找listObject中是否存在str 所以我需要一个正确或错误的结果 如何实现这一点?这是Java Collections API的标准部分: boolean exists = listObject.contains(str); 这是Java Collections API的标准部分:

我有一个列表,我需要找到特定字符串是否存在于列表中

例如:

字符串str=苹果

List listObject=Lists.newArrayListapple、橙色、香蕉色

我需要使用Google Guava查找listObject中是否存在str

所以我需要一个正确或错误的结果


如何实现这一点?

这是Java Collections API的标准部分:

boolean exists = listObject.contains(str);

这是Java Collections API的标准部分:

boolean exists = listObject.contains(str);

我同意这是可以做到的,也应该做到,也许可以使用标准的Collections API,但无论如何,在Guava中,您可以这样做:

List<String> strList = Arrays.asList(new String[] {"one", "two", "3", "4"});
boolean exists = FluentIterable.from(strList).contains("two");

我同意这是可以做到的,也应该做到,也许可以使用标准的Collections API,但无论如何,在Guava中,您可以这样做:

List<String> strList = Arrays.asList(new String[] {"one", "two", "3", "4"});
boolean exists = FluentIterable.from(strList).contains("two");

为什么要使用Guava?Guava是新的jQuery。为什么要使用Guava?Guava是新的jQuery。您甚至可以将.containstwo替换为.anyMatchPredicates.equalTotwo以进行更模糊的处理。此解决方案与集合API之间的主要区别在于,此解决方案适用于任何Iterable。换句话说,Arrays.asList部分是冗余的。只需将数组直接传入即可。@Stewart:很遗憾,数组不可编辑。另外,如果您只需要包含检查,就可以编写Arrays.aslistary.containstwo!又是循环打击的速记!您甚至可以将.containstwo替换为.anyMatchPredicates.equalTotwo以进行更模糊的处理。此解决方案与集合API之间的主要区别在于,此解决方案适用于任何Iterable。换句话说,Arrays.asList部分是冗余的。只需将数组直接传入即可。@Stewart:很遗憾,数组不可编辑。另外,如果您只需要包含检查,就可以编写Arrays.aslistary.containstwo!又是循环打击的速记!我想我误解了这个问题。我不认为你误解了。这个问题是专门问如何使用番石榴来做这件事的,我错过了这一点。FluentIterable.contains调用Iterables.contains哪些逻辑是不同的,包括抑制NullPointerExceptionYeah,问题是当标准API中存在您所指出的方法时,没有很好的理由希望使用Guava来实现这一点。从Collection.containsnall抛出NPE的行为非常罕见,我不确定是否有任何实现真正做到了这一点,没有人应该使用fluenterable.contains,除非他们知道这是他们需要担心的事情。ArrayList也没有这样做。我想我误解了这个问题。我不认为你误解了。这个问题是专门问如何使用番石榴来做的,我没有抓住这一点。FluentIterable.contains调用Iterables.contains哪些逻辑是不同的,包括抑制NullPointerExceptionYeah,问题是当标准API中存在您所指出的方法时,没有很好的理由希望使用Guava来实现这一点。从Collection.containsnall抛出NPE的行为非常罕见,我不确定是否有任何实现真正做到了这一点,没有人应该使用fluenterable.contains,除非他们知道这是他们需要担心的事情。而且ArrayList也不会这么做。