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

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

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

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

谢谢。

回答:

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

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

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

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

以上是 如何在Java中检查Set是否包含具有某些字符串值的对象? 的全部内容, 来源链接: utcz.com/qa/425390.html

回到顶部