introduction
Le titre de l'article est vraiment «holivny», mais à mon avis, Java et la bibliothèque populaire de Guava ont un certain nombre de problèmes architecturaux qui à long terme conduisent à des ambiguïtés et à des désaccords au sein de l'équipe.

Java Collections Framework et immuabilité sur la confiance
Collections Framework , . java.util.Collection add, clear, remove ... : Collections.emptyList(), Collections.singletonList<T>(T t), Arrays.asList<T>(T.. values) . . :
List<Integer> list = Arrays.asList(21, 22, 23);
list.add(24)        
? java.util.List java.util.Collection, add. , Arrays.asList<T>(T... t) , add remove . : , . , - .
List<Integer> list = Arrays.asList(21, 22, 23);
list.set(0, 121);
System.out.println(list);        
. . , . , , , . .
List<Integer> filtered = filter(List<Integer> list);
filter List<Integer> . ? , ? try {} catch(Exception e) {} add remove — . ? ? list, filtered? . , . , — . , , list.clear(), , . SOLID, L — , , . , add , .
- , Stream API. , Java , , , . , , .
, java.util.Collection, java.util.Iterable, Collection. Iterable , Iterator, for-each . .
public interface Iterator<E> {
    boolean hasNext();
    E next();
    default void remove() {
        throw new UnsupportedOperationException("remove");
    }
    default void forEachRemaining(Consumer<? super E> action) {
        Objects.requireNonNull(action);
        while (hasNext())
            action.accept(next());
    }
}
remove. , for-each, , , API , , . - , , , , Java , .
Guava
Guava? — ImmutableList.
ImmutableList<String> people = ImmutableList.of("Michael", "Simon", "John")
...
? «Immutable». , ImmutableList java.util.List, add, clear ... , . , final. : , List Collection. , ImmutableList, , , « ». Guava .
Kotlin
? , JetBrains Kotlin. , , , . :

, , , .
val list: List<Int> = listOf(1, 2, 3)
val mutableList: MutableList<Int> = list as MutableList<Int>
mutableList.clear()      
- , MutableList List MutableList, , . , Java Collections Framework, Guava: , . , , . , Java, - , , , .
? ? , : , , , . . Java Collections Framework Immutable. :

, , «Immutable». , . , ImmutableQueue, , . . LinkedList , , ( , ). ImmutableLinkedList .
- , , . List ImmutableList. , toMutableList toImmutableList ImmutableList List . , , . , ArrayList ImmutableArrayList . . ArrayList , ImmutableArrayList, ImmutableArrayList ArrayList. API , .
, — java.util.Iterable. , for-each , . java.util.Iterator, , remove, . , .
ImmutableIterable, ImmutableIterator. , , Java for-each Iterable, ImmutableIterable.ImmutableIterator, java.util.Iterator remove, final, . , .remove Iterator, , Java, , .
, Java JP . , — , Java-. , , . !
P.S.
Je travaille actuellement sur une bibliothèque open source qui fournit des collections Java entièrement immuables. Les personnes intéressées peuvent trouver le lien sur Github .