pengantar
Judul posting ini benar-benar "holivny", tetapi menurut saya Jawa dan perpustakaan Guava yang populer memiliki sejumlah masalah arsitektur yang pada akhirnya menyebabkan ambiguitas dan ketidaksepakatan dalam tim.

Java Collections Framework dan kekekalan kepercayaan
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.
Saat ini saya sedang mengerjakan pustaka sumber terbuka yang menyediakan koleksi Java yang sepenuhnya tidak dapat diubah. Mereka yang tertarik dapat menemukan tautan di Github .