当前位置: 首页 > 面试题库 >

如何在Java中检查Set是否包含具有某些字符串值的对象?

宋岳
2023-03-14
问题内容

我有一组对象。每个对象都有字符串值。

我需要选择所有this值等于“方向”的对象。

是否可以在不迭代集合的情况下进行?

谢谢。


问题答案:

一般来说,没有。您需要遍历该集合并检查每个对象,以查看该属性是否等于要搜索的值。这是一项O(n)操作。

在一种情况下,您可以不重复进行操作。如果对象的equals方法是根据该String属性的相等性定义的,并且该hashCode方法也已正确实现,则可以使用hashSet.contains来及时找到具有正确值的对象,O(1)而无需遍历集合。

正如我提到的,这是一个非常特定的用例,而不是一个通用的解决方案。如果字符串是某种唯一标识符,则可能会很有用,但不适用于您的特定用例。

您可能还需要考虑其他更适合您的用例的集合。例如,如果您使用的是Guava,则可以考虑使用Multimap。



 类似资料:
  • 问题内容: 在Python中,如何检查字符串是否仅包含某些字符? 我需要检查仅包含a..z,0..9和的字符串。(句号),没有其他字符。 我可以遍历每个字符并检查字符是a..z还是0..9或。但这会很慢。 我现在不清楚如何使用正则表达式进行操作。 这个对吗?您可以提出更简单的正则表达式还是更有效的方法? 问题答案: 决赛(?) 答案,包装在函数中,带有注释的交互式会话: 注意:在此答案中还有一个比

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:

  • 问题内容: 检查字符串切片中是否存在某个值的最佳方法是什么?我会用其他语言的Set,但Go没有。 到目前为止,我最好的尝试是: http://play.golang.org/p/gkwMz5j09n 对于小切片,此解决方案应该可以,但是对于包含许多元素的切片,该怎么办? 问题答案: 如果您具有任意顺序的字符串切片,则查找切片中是否存在值需要O(n)时间。这适用于所有语言。 如果您打算一遍又一遍地进

  • 问题内容: 例如,我想检查一个字符串,如果它不能转换为integer(with ),我怎么能检测到呢? 问题答案: 使用方法: 引用文档: 如果字符串中的所有字符都是数字并且至少包含一个字符,则返回true,否则返回false。 对于字符串或Python 3字符串,您将需要使用更精确的定义并使用/代替;并非所有Unicode数字都可以解释为十进制数字。例如,U + 00B2 SUPERSCRIPT

  • 问题内容: 如何检查字符串是否包含以下格式的日期: 2012年1月15日,星期日,美国东部标准时间晚上7:36 我正在使用的数据包含大量字符串。但是我要查找的字符串类型包含一个2或3个单词名称和一个日期。我正在检查日期以识别这些类型的字符串。 我已经找到了这种日期的simpleDateFormat。 但是我不知道如何进一步进行。 我猜测正则表达式可能有效,但是当月/日名称的长度不同时,我不知道如何

  • 问题内容: 在Java forString类中,有一个称为matchs的方法,该方法如何使用正则表达式检查我的字符串是否只有数字。我尝试了以下示例,但它们均使我返回了false。 问题答案: 尝试 要么 按照Java 正则表达式 ,其 含义是“一次或多次”,并且其含义是“数字”。 注意:“双反斜杠”是一个 转义序列, 用于获取单个反斜杠-因此,在Java字符串中会提供实际结果: 参考文献: Jav