Должен ли я использовать здесь плоскую карту или карту списка ключевых значений - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть карта значений. Значения ограничены всего 3 вариантами («A», «B», «C»). У меня будет около 100 записей для этой карты.

Map<String, String> map = new HashMap<>();
map.put("key1","A");
map.put("key2","B");
map.put("key3","C");
map.put("key4","A");
map.put("key5","B");
.
.
.

Единственной целью этой карты будет функция, в которой я получаю ключ в качестве ввода и мне нужно вернуть одно из трех «A», « B "," C "или ноль, если ключ не имеет значения. Мой поиск будет основан только на ключе здесь.

Я не могу решить, следует ли мне повторять значения и строить плоскую карту, как указано выше, или использовать Map<String, List<String>>, где ключом будут три значения. Как в

Map<String, List<String>> map = new HashMap<>();
map.put("A",Arrays.asList("key1","key2"));
map.put("B",Arrays.asList("key3","key4"));
map.put("C",Arrays.asList("key5","key6"));

Или, я использую 3 отдельные List<String> переменные и проверяю использование каждый раз. Как и в

List<String> A_LIST = Arrays.asList("key1","key2");
List<String> B_LIST = Arrays.asList("key3","key4");
List<String> C_LIST = Arrays.asList("key5","key6");

Также, я использую строки enum / stati c для значений здесь и повторяю их при построении карты? Каков был бы правильный способ сделать это? Любой совет будет полезен.

1 Ответ

0 голосов
/ 15 апреля 2020

Я не уверен, понял ли я вашу проблему. Но я думаю, что get(key) метод вашей карты должно быть достаточно. Если на карте нет записи, она вернет null.

Я бы изменил значение только на Enum, и вы можете быть уверены, что нет никаких других значений, кроме A, B и * 1006. *.

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