Как найти поле объекта, который является значением в HashMap? - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь проверить, находится ли значение productId в HashMap, но я не понимаю, как правильно указать его.и хэш-код и равно, сгенерированные IDEA.

Ответы [ 2 ]

3 голосов
/ 19 апреля 2019

Используя Java 8, вы можете сделать это:

String in = "120";
boolean contains = myMap
    .values().stream()
    .flatMap(Set::stream)
    .anyMatch(p -> p.getId().equals(in)));
System.out.println("Contains? " + contains);

Это, в основном, "поток" через значения внутри карты, вызов потока в подмножествах, а затем возвращает true, когда идентификатор любого элемента соответствуетпредоставленная строка, ложь в противном случае

1 голос
/ 19 апреля 2019

Использование Java 8:

myMap.forEach((k,v) -> {
for (Product p : v) {
    if (p.getValue().equals(in))
        System.out.println(true);
    }
});

РЕДАКТИРОВАТЬ: исправил ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...