Sobes.tech
Junior — Middle

Wenn ich die Methode toList() auf einen Stream aufrufe, ist das Ergebnis eine ArrayList oder ein anderer Sammlungstyp?

sobes.tech KI

Antwort von AI

Die Methode toList() im Stream-Interface (ab Java 16) gibt eine unveränderliche Liste zurück, aber der konkrete Typ der Sammlung ist nicht garantiert und ist nicht unbedingt ein ArrayList. Im Gegensatz zu collect(Collectors.toList()), das in der Regel ein ArrayList zurückgibt, kann Stream.toList() einen anderen Listentyp zurückgeben, der für die konkrete Implementierung optimiert ist.

Beispiel:

List<String> list = Stream.of("a", "b", "c").toList();
// Die Liste ist unveränderlich, ein Versuch, sie zu ändern, löst UnsupportedOperationException aus

Daher kann man sich nicht darauf verlassen, dass das Ergebnis genau ein ArrayList ist. Wenn ein ArrayList benötigt wird, ist es besser, collect(Collectors.toList()) zu verwenden.