Map with multiple values for same key

Posted on Updated on

APPROACH 1:

Map<String, List> map = new HashMap<>();
List list = new ArrayList<>();
map.put(“key1”, list);
map.get(“key1”).add(“value1”);
map.get(“key1”).add(“value2”);

assertThat(map.get(“key1”).get(0)).isEqualTo(“value1”);
assertThat(map.get(“key1”).get(1)).isEqualTo(“value2”);

APPROACH 2:

MultiMap<String, String> map = new MultiValueMap<>();
map.put(“key1”, “value1”);
map.put(“key1”, “value2”);
assertThat((Collection) map.get(“key1”))
.contains(“value1”, “value2”);

APPROACH 3: Java 8 Approach

Map<String, List> map = new HashMap<>();
map.computeIfAbsent(“key1”, k -> new ArrayList<>()).add(“value1”);
map.computeIfAbsent(“key1”, k -> new ArrayList<>()).add(“value2”);

assertThat(map.get(“key1”).get(0)).isEqualTo(“value1”);
assertThat(map.get(“key1”).get(1)).isEqualTo(“value2”);

Leave a comment