如果知道要检索的元素,那么您已经有了该元素。
Set给定一个元素,答案的唯一问题是它是否
contains()存在。
如果要迭代元素,请使用
Set.iterator()。
听起来您要尝试的是为元素的等价类指定一个规范元素。您可以使用
Map<MyObject,MyObject>来执行此操作。
如果您真的确定要找到一个元素,该
.equals()元素必须具有您必须使用的约束,那么
HashSet我认为您一直在遍历它并检查
equals()自己。该API不允许您通过其哈希代码来获取某些东西。因此,您可以执行以下操作:
MyObject findIfPresent(MyObject source, HashSet<MyObject> set){ if (set.contains(source)) { for (MyObject obj : set) { if (obj.equals(source))return obj; } } return null;}蛮力和O(n)丑陋,但是如果那是您需要做的…



