Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Populating a hashmap with predefined values (java)

I've run into a problem I haven't had to deal with before. I'm writing a patch for a database in java that's basically converting data stored in certain rows. In order to do this I have a conversion table that tells me what values become what.

Example, if I read in either "RC", "AC", "GH" -> Update the value to "T1". (These are just random examples, it's basically converting one string to another.)

I need a good way of storing these conversions. I was thinking a hashmap: KEY,VALUE: (RC,T1) (AC,T1) (GH,T1) and so on and so on.

Now, there's dozens and dozens of these. What's a good clean way of populating this hashmap when the patch initializes?

like image 287
user1652875 Avatar asked Sep 06 '12 18:09

user1652875


2 Answers

I would do the initialisation while setting up the HashMap

For example

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

Then you wuld make sure that everything is set up together in your code.

I think @Nambari makes a good point though with perhaps having the value as a list rather than just a string. This does then swap your keys and values though.

eg

 private static final Map<String, List<String>> m = new HashMap<String, List<String>>() {{
    put("T1", Arrays.asList("RC", "AC");
}};
like image 188
RNJ Avatar answered Nov 14 '22 09:11

RNJ


With Java 11 you can use Map.of("RC", "T1", "AC", "T1");

like image 31
Ondřej Stašek Avatar answered Nov 14 '22 10:11

Ondřej Stašek