BAEL-1983 Intialize a HashMap in Java (#4819)
This commit is contained in:
parent
33889d0cd7
commit
7ff4d2ea4c
|
@ -0,0 +1,33 @@
|
||||||
|
package com.baeldung.java9.maps.initialize;
|
||||||
|
|
||||||
|
import java.util.AbstractMap;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class MapsInitializer {
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public void createMapWithMapOf() {
|
||||||
|
Map<String, String> emptyMap = Map.of();
|
||||||
|
Map<String, String> singletonMap = Map.of("key1", "value");
|
||||||
|
Map<String, String> map = Map.of("key1","value1", "key2", "value2");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createMapWithMapEntries() {
|
||||||
|
Map<String, String> map = Map.ofEntries(
|
||||||
|
new AbstractMap.SimpleEntry<String, String>("name", "John"),
|
||||||
|
new AbstractMap.SimpleEntry<String, String>("city", "budapest"),
|
||||||
|
new AbstractMap.SimpleEntry<String, String>("zip", "000000"),
|
||||||
|
new AbstractMap.SimpleEntry<String, String>("home", "1231231231")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public void createMutableMaps() {
|
||||||
|
Map<String, String> map = new HashMap<String, String> (Map.of("key1","value1", "key2", "value2"));
|
||||||
|
Map<String, String> map2 = new HashMap<String, String> ( Map.ofEntries(
|
||||||
|
new AbstractMap.SimpleEntry<String, String>("name", "John"),
|
||||||
|
new AbstractMap.SimpleEntry<String, String>("city", "budapest")));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
package com.baeldung.java.map.initialize;
|
||||||
|
|
||||||
|
import java.util.AbstractMap;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
public class MapInitializer {
|
||||||
|
|
||||||
|
public static Map<String, String> articleMapOne;
|
||||||
|
static {
|
||||||
|
articleMapOne = new HashMap<>();
|
||||||
|
articleMapOne.put("ar01", "Intro to Map");
|
||||||
|
articleMapOne.put("ar02", "Some article");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String, String> createSingletonMap() {
|
||||||
|
Map<String, String> passwordMap = Collections.singletonMap("username1", "password1");
|
||||||
|
return passwordMap;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> createEmptyMap() {
|
||||||
|
Map<String, String> emptyMap = Collections.emptyMap();
|
||||||
|
return emptyMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> createUsingDoubleBrace() {
|
||||||
|
Map<String, String> doubleBraceMap = new HashMap<String, String>() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
{
|
||||||
|
put("key1", "value1");
|
||||||
|
put("key2", "value2");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return doubleBraceMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> createMapUsingStreamStringArray() {
|
||||||
|
Map<String, String> map = Stream.of(new String[][] { { "Hello", "World" }, { "John", "Doe" }, })
|
||||||
|
.collect(Collectors.toMap(data -> data[0], data -> data[1]));
|
||||||
|
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Integer> createMapUsingStreamObjectArray() {
|
||||||
|
Map<String, Integer> map = Stream.of(new Object[][] { { "data1", 1 }, { "data2", 2 }, })
|
||||||
|
.collect(Collectors.toMap(data -> (String) data[0], data -> (Integer) data[1]));
|
||||||
|
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Integer> createMapUsingStreamSimpleEntry() {
|
||||||
|
Map<String, Integer> map = Stream.of(new AbstractMap.SimpleEntry<>("idea", 1), new AbstractMap.SimpleEntry<>("mobile", 2))
|
||||||
|
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
|
||||||
|
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Integer> createMapUsingStreamSimpleImmutableEntry() {
|
||||||
|
Map<String, Integer> map = Stream.of(new AbstractMap.SimpleImmutableEntry<>("idea", 1), new AbstractMap.SimpleImmutableEntry<>("mobile", 2))
|
||||||
|
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
|
||||||
|
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> createImmutableMapWithStreams() {
|
||||||
|
Map<String, String> map = Stream.of(new String[][] { { "Hello", "World" }, { "John", "Doe" }, })
|
||||||
|
.collect(Collectors.collectingAndThen(Collectors.toMap(data -> data[0], data -> data[1]), Collections::<String, String> unmodifiableMap));
|
||||||
|
return map;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.baeldung.java.map.initialize;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class MapInitializerUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenStaticMap_whenUpdated_thenCorrect() {
|
||||||
|
|
||||||
|
MapInitializer.articleMapOne.put("NewArticle1", "Convert array to List");
|
||||||
|
|
||||||
|
assertEquals(MapInitializer.articleMapOne.get("NewArticle1"), "Convert array to List");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected=UnsupportedOperationException.class)
|
||||||
|
public void givenSingleTonMap_whenEntriesAdded_throwsException() {
|
||||||
|
|
||||||
|
Map<String, String> map = MapInitializer.createSingletonMap();
|
||||||
|
map.put("username2", "password2");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue