2 HashMaps VS HashMap содержат пару - PullRequest
0 голосов
/ 28 мая 2020

Во время разработки сервиса у меня возникла проблема, когда мне нужно выбрать одно из двух решений

  • использовать 2 хэш-карты
  • использовать одну карту га sh, содержащую пара значений.

В настоящее время у меня есть вариант с двумя хэш-картами, однако мне часто нужно получать значения из двух таблиц ha sh с использованием одного и того же ключа.

class C {
Map<String, A> a = new HashMap<>();
Map<String, B> b = new HashMap<>();

A getA(String str){return a(str);}
B getB(String str){return b(str);}
}

Я подумываю изменить код следующим образом

class C {
Map<String, Pair<A, B>> a_b = new HashMap<>();
Pair<A, B> getAB(String str){return a_b.get(str);}
}

Будет ли это эффективнее на большом столе ha sh?

1 Ответ

3 голосов
/ 29 мая 2020

Я думаю, что этот вопрос не столько об эффективности или производительности, сколько о том, что имеет смысл. И чтобы ответить, что имело бы смысл, нужно было бы принять во внимание контекст. Если значения двух хэш-карт зависят друг от друга и составляют логическую единицу, которая может быть инкапсулирована в класс, тогда используйте класс (или пару, если это имеет больший смысл). Если значения не связаны напрямую и имеют смысл только в одном контексте как пары, а в другом как отдельные вещи, рассмотрите возможность использования двух карт.

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