我遇到了一个我以前没有处理过的问题。我正在为java中的数据库编写一个补丁,它基本上是转换存储在某些行中的数据。为了做到这一点,我有一个转换表,告诉我什么值成为什么。
例如,如果我读入“RC”,“AC”,“GH” - >将值更新为“T1”。 (这些只是随机的例子,它基本上是将一个字符串转换为另一个字符串。)
我需要一种存储这些转换的好方法。我在想一个hashmap: KEY,VALUE:(RC,T1)(AC,T1)(GH,T1)等依此类推。
现在,有几十个,几十个。当补丁初始化时,填充此hashmap的一种很好的干净方法是什么?
答案 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