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 .