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

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

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

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

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

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

例如

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

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

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

例如

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

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

您可以使用apache commons中的PropertiesConfiguration 。

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

 key = This property, has multiple, values