使用预定义值填充哈希映射 (java)

2022-09-02 23:44:21

我遇到了一个我以前不必处理过的问题。我正在为Java中的数据库编写一个补丁,该补丁基本上正在转换存储在某些行中的数据。为了做到这一点,我有一个转换表,告诉我什么值变成什么。

例如,如果我在“RC”,“AC”,“GH”中读取 - >将值更新为“T1”。(这些只是随机示例,它基本上是将一个字符串转换为另一个字符串。

我需要一种存储这些转换的好方法。我在想一个哈希图:KEY,VALUE:(RC,T1)(AC,T1)(GH,T1)等等。

现在,有几十个这样的。在补丁初始化时填充此哈希映射的好方法是什么?


答案 1

我会在设置哈希映射时进行初始化

例如

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");
}};

答案 2

在 Java 11 中,您可以使用Map.of("RC", "T1", "AC", "T1");