Convenience Factory Methods for Collections, added in JDK 9 (JEP 269), were a set of methods designed to make the instantiation of collections easier.
Creating even simple collections, like the below ArrayList
example required a fair amount of typing to accomplish:
List<String> values =
new ArrayList<>();
values.add("value 1");
values.add("value 2");
values.add("value 3");
To lower the formality around creating simple collections List
, Set
, and Map
each had a default method of
defined for creating an unmodifiable instance of the respective collection type like in the examples below for List
and Set
:
List:
List<String> values = List.of(
"value 1",
"value 2",
"value 3");
Set:
Set<String> values = Set.of(
"value 1",
"value 2",
"value 3");
When creating a Map
instance using Map.of
the types of arguments passed into of
must match the key and value of the the map like in the below example of Integer
and String
:
Map<Integer, String> values = Map.of(
1, "value 1",
2, "value 2",
3, "value 3");
If more clarity is needed when creating a simple Map
instance, you could also use Map.ofEntries
with java.util.Map.entry
, like in the below example:
import static java.util.Map.entry;
...
Map<Integer, String> values = Map.ofEntries(
entry(1, "value 1"),
entry(2, "value 2"),
entry(3, "value 3"));
...
Happy coding!