Как получить общие значения из двух разных карт самым быстрым способом?

78
11

У меня есть два хэш-карты. Я хочу найти значения, которые являются общими для обеих карт. Один из способов - перебрать первую карту, получить значение и использовать это значение для сопоставления с значениями другой карты с помощью итерации. Но это занимает много времени. Есть ли другой способ найти общие значения самым быстрым способом?

спросил(а) 2021-01-25T17:13:53+03:00 4 месяца, 4 недели назад
1
Решение
77

firstMap.keySet().retainAll(secondMap.keySet()) делает то, что вы хотите.

Я все еще не уверен, что это самый быстрый способ. Возможно, если вы сможете контролировать население этих двух карт, вы можете создать третью карту, которая будет накапливать общие ключи во время совокупности данных?

ответил(а) 2021-01-25T17:13:53+03:00 4 месяца, 4 недели назад
45

не пробовал это, и я не уверен, будет ли это быстрее или нет, но вы можете рассмотреть возможность преобразования HashMaps в HashSets, а затем вызвать Set1.retainAll(Set2)

ответил(а) 2021-01-25T17:13:53+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема