I have a map which contains variable length string list. e.g
Map<String, List<String> map = new HashMap<>(); map.put("key", "key1, key2); map.put("name", "name1, name2, name3"); map.put("code", "code1, code2");
This will give 12 different permutations. The below code does that job
List<String> values = new ArrayList<>(); for (int i = 0; i < map.get("key").size(); i++) { values.add(map.get("key").get(i)); for (int j = 0; j < map.get("name").size(); j++) { values.add(map.get("name").get(j)); for (int k = 0; k < map.get("code").size(); k++) { values.add(map.get("code").get(k)); } } }
Expected output:
"key1", "name1", "code1", "key1", "name1", "code2", "key1", "name2", "code1", "key1", "name2", "code2", "key1", "name3", "code1", "key1", "name3", "code2", "key2", "name1", "code1", "key2", "name1", "code2", "key2", "name2", "code1", "key2", "name2", "code2", "key2", "name3", "code1", "key2", "name3", "code2"
But the problem is this is hard coded with 3 for loops, but what I expect is to support for any number of variables. Prompt help is much appreciated.
values
map after it's done?