Java9 Collection Factory Methods
# Java 9 Collection Factory Methods
[ Java 9 New Features](#)
In Java 9, new static factory methods in the List, Set, and Map interfaces can create immutable instances of these collections.
These factory methods provide a more concise way to create collections.
**Old Way to Create Collections**
## Example
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class Tester{public static void main(String[]args){Setset = new HashSet(); set.add("A"); set.add("B"); set.add("C"); set = Collections.unmodifiableSet(set); System.out.println(set); Listlist = new ArrayList(); list.add("A"); list.add("B"); list.add("C"); list = Collections.unmodifiableList(list); System.out.println(list); Mapmap = new HashMap(); map.put("A","Apple"); map.put("B","Boy"); map.put("C","Cat"); map = Collections.unmodifiableMap(map); System.out.println(map); }}
The output is:
[A, B, C][A, B, C]{A=Apple, B=Boy, C=Cat}
**New Way to Create Collections**
In Java 9, the following methods were added to the List, Set, and Map interfaces and their overloaded versions.
static List of(E e1, E e2, E e3);static Set of(E e1, E e2, E e3);static Map of(K k1, V v1, K k2, V v2, K k3, V v3);static Map ofEntries(Map.Entry... entries)
* For the List and Set interfaces, the `of(...)` method is overloaded with different methods for 0 to 10 parameters.
* For the Map interface, the `of(...)` method is overloaded with different methods for 0 to 10 parameters.
* For the Map interface, if there are more than 10 parameters, you can use the `ofEntries(...)` method.
**New Way to Create Collections**
## Example
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.AbstractMap; import java.util.Map; import java.util.Set; public class Tester{public static void main(String[]args){Setset = Set.of("A", "B", "C"); System.out.println(set); Listlist = List.of("A", "B", "C"); System.out.println(list); Mapmap = Map.of("A","Apple","B","Boy","C","Cat"); System.out.println(map); Mapmap1 = Map.ofEntries(new AbstractMap.SimpleEntry("A","Apple"), new AbstractMap.SimpleEntry("B","Boy"), new AbstractMap.SimpleEntry("C","Cat")); System.out.println(map1); }}
The output is:
[A, B, C][A, B, C]{A=Apple, B=Boy, C=Cat}{A=Apple, B=Boy, C=Cat}
[ Java 9 New Features](#)
YouTip