Мне нужно выбрать точный элемент из хэш-карты.
Я написал метод, который должен возвращать элемент.
Из строки:
this.referenceEntityCache.getReferenceEntities();
Я получу hashMap
, похожее на это Карта :
{[Element: <Ry/>] = EntityTree@1,
// [Element: <Nd/>] = EntityTree@2,
// [Element: <Ry/>] = EntityTree@3,
// [Element: <Ah/>] = EntityTree@4,
// [Element: <Ah/>] = EntityTree@5 }
и из этой карты мне нужно получить только элемент "Ах".
HashMap имеет ключ = Element: и значение entityTree, связанное с ним.
public Element pickUpTheElement() {
Element ahElement = null;
Map<Element, EntityTree> mapOfElements = this.referenceEntityCache.getReferenceEntities();
return ahElement = mapOfElements.map(map -> map.entrySet()
.stream()
.filter(e -> Objects.equals(e.getValue(), element))
.map(Map.Entry::getKey)
.findAny());
.orElse(null);
понятия не имеет, как правильно фильтровать его с помощью Java8 и получать из него только элемент «Ах». Есть 2 элемента Ah - но поскольку они являются объектами - они имеют разные хеш-коды, поскольку их значения (EntityTree) различны