У меня есть HashMap (String, Object). Ключ представляет собой комбинацию из более чем одного уникального идентификатора. У меня есть вход, строка, которая является частью ключа (1 уникальный идентификатор). Мне нужно принять значение в HashMap, используя ту часть ключа, которая у меня есть, без повторения тысяч значений в HashMap.Получить значение HashMap с помощью части ключа
Можно ли достичь этого, используя любой оператор Regex в HashMap.get()?
Мой ключ - xxx.yyy.zzz, где комбинация xxx.zzz уникальна на всей карте. У меня есть xxx и zzz в качестве входных данных. Также у меня есть набор возможных значений yyy (5-6 возможностей, которые могут также увеличиться) для заданного zzz.
У меня есть два варианта решить это сейчас.
- Map.Entry, чтобы проверить, является ли ключевым начинается и заканчивается ххх и ZZZ соответственно
- методом проб и ошибок я. Введите ключ xxx.yyy.zzz со всеми возможными yyys и проверьте, присутствует или нет ключ .contains() ii. Но так, если я делаю .contains() 5-6 раз для каждого вызова, не будет ли он проходить через 5-6 раз в худшем случае? iii. Также я создаю больше строк в stringpool.
Кому хотелось бы?
HashMap не работает для извлечения частей ключа. Вы должны соответствовать ему точно для поиска. – Thilo
, который содержит все ответы здесь? Не стреляйте в посланника. HashMap просто не делает этого ... – Thilo
насколько велик ваш набор данных и как часто вам нужно его запрашивать? Линейный поиск через «тысячи» ключей, вероятно, не слишком страшный. «сотни тысяч» могут вызвать у вас неприятности. – Thilo