Почему Set не предоставляет операцию для получения элемента, равного другому элементу?
Set<Foo> set = ...;
...
Foo foo = new Foo(1, 2, 3);
Foo bar = set.get(foo); // get the Foo element from the Set that equals foo
Я могу спросить, содержит ли Set элемент, равный bar, поэтому почему я не могу получить этот элемент?: (
Чтобы уточнить, метод equals переопределен, но он проверяет только одно из полей, а не все. Таким образом, два объекта Foo, которые считаются равными, могут иметь разные значения, поэтому я не могу просто использовать Foo.