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

时间:2012-09-06 18:29:19

标签: java hashmap auto-populating

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

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

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

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

3 个答案:

答案 0 :(得分:24)

我会在设置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");
}};

答案 1 :(得分:0)

可能是其他方式,将RC,AC,GH列为值,将T1列为hashmap的键,这样可以减少map中的条目数。

答案 2 :(得分:0)

您可以使用apache commons中的PropertiesConfiguration

  

值可以包含值分隔符,然后将被解释为标记列表。默认值分隔符是逗号','。所以以下属性定义

key = This property, has multiple, values