Reaons - Immutablility is thread safe, more performant and more reliable (as in there should be less unexpected behavior since there will be no side effects when calling methods)
What is immutability? It just means it the value cannot change. Immutable collections cannot have their items modified.
A lot of Collection convenience methods will return an immutable collection
list.of();
Collections.singletonList();
To create a mutable collection from an immuatble one (in case you really, really needed one), use the collections constructor
new ArrayList<>(List.of("", "e3"));
Immutable lists should stick to using streams as other APIs (like the Collections package) might try to modify the collection