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

use*_*875 12 java hashmap auto-populating

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

例如,如果我读入"RC","AC","GH" - >将值更新为"T1".(这些只是随机的例子,它基本上是将一个字符串转换为另一个字符串.)

我需要一种存储这些转换的好方法.我在考虑一个hashmap:KEY,VALUE:(RC,T1)(AC,T1)(GH,T1)等依此类推.

现在,有几十个,几十个.当补丁初始化时,填充此hashmap的一种很好的干净方法是什么?

RNJ*_*RNJ 26

我会在设置HashMap时进行初始化

例如

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

然后,您将确保在代码中一起设置所有内容.

我认为@Nambari虽然可能将值作为列表而不仅仅是一个字符串,但它提出了一个很好的观点.然后,这会交换您的键和值.

例如

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

  • **警告**:请勿使用“双括号初始化器”,它会创建“ HashMap”的匿名子类,这可能会导致性能下降。其次,这使读者感到困惑,因为此代码表明存在某种“双括号初始化程序”构造,而没有。 (2认同)