Заполнение хэш-карты с предопределенными значениями (Java)

Я столкнулся с проблемой, с которой раньше не сталкивался. Я пишу патч для базы данных в Java, которая в основном конвертирует данные, хранящиеся в определенных строках. Для того, чтобы сделать это, у меня есть таблица преобразования, которая говорит мне, какие значения становятся чем.

Например, если я читаю в "RC", "AC", "GH" -> Обновить значение до "T1". (Это просто случайные примеры, это в основном преобразование одной строки в другую.)

Мне нужен хороший способ хранения этих конверсий. Я думал о хэш-карте: KEY,VALUE: (RC,T1) (AC,T1) (GH,T1) и так далее, и так далее.

Теперь есть десятки и десятки из них. Какой хороший чистый способ заполнить эту хэш-карту при инициализации патча?

4 ответа

Решение

Я бы сделал инициализацию при настройке HashMap

Например

private static final Map<String, String> m = new HashMap<String, String>() {{
    put("RC", "T1");
    put("AC", "T1");
}};

Затем вы убедитесь, что в вашем коде все настроено вместе.

Я думаю, что @Nambari делает хорошую мысль, хотя, возможно, имеет значение в виде списка, а не просто строки. Это тогда поменяет ваши ключи и значения, хотя.

например

 private static final Map<String, List<String>> m = new HashMap<String, List<String>>() {{
    put("T1", Arrays.asList("RC", "AC");
}};

С Java 11 вы можете использовать Map.of("RC", "T1", "AC", "T1");

Вы можете использовать PropertiesConfiguration из Apache Commons.

Значение может содержать разделители значений и будет интерпретироваться как список токенов. Разделителем значения по умолчанию является запятая ','. Итак, следующее определение свойства

key = This property, has multiple, values

Может быть другой путь, список RC,AC,GH в качестве значения и T1 в качестве ключа для hashmap, таким образом, вы можете уменьшить количество записей в карте.

Другие вопросы по тегам