Почему 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
.