Gibt es einen Vorteil (oder einen großen Unterschied) zu Arrays.asList (etwas) über Collections.singletonList (etwas), um eine Liste mit einem Element zu machen? Letzteres macht die zurückgegebene Liste ebenfalls unveränderlich.Arrays.asList() vs Collections.singletonList()
Antwort
Collections.singletonList(something)
ist unveränderliche während Arrays.asList(something)
ist eine feste Größe List
Darstellung eines Arrays, wo die Liste und Array wird in der Halde verbunden ist.
Arrays.asList(something)
ermöglicht nicht strukturelle Änderungen gemacht, die sowohl in der Liste und der verbundenen Array reflektiert wird. Es wirft UnsupportedOperationException
zum Hinzufügen, Entfernen von Elementen, obwohl Sie ein Element für einen bestimmten Index festlegen können.
Alle Änderungen an der Liste, die von Collections.singletonList(something)
zurückgegeben werden, führen zu UnsupportedOperationException
.
Auch die Kapazität der von Collections.singletonList(something)
zurückgegebene Liste wird immer im Gegensatz zu Arrays.asList(something)
deren Kapazität ist die Größe des gesicherten Array sein.
Ich würde nur hinzufügen, dass die Singletonlist nicht von einem Array unterstützt wird und nur einen Verweis auf dieses eine Element hat. Vermutlich würde es weniger Speicher benötigen und je nach Anzahl der Listen, die Sie erstellen möchten, erheblich sein.
- 1. Arrays.asList vs. Arrays.stream verwenden foreach()
- 2. Arrays.stream (Array) vs Arrays.asList (Array) .stream()
- 3. Wie funktioniert Arrays.asList (...). (...)?
- 4. Warum Arrays.asList() eine eigene Implementierung Arraylist zurückkehren
- 5. Gibt es eine Möglichkeit, den Rückgabetyp Arrays.asList zu zwingen
- 6. Java Arrays.asList auf primitive Array-Typ zu unerwarteten Liste Typ
- 7. Warum gibt Arrays.asList eine Liste fester Größe zurück?
- 8. mit Character vs char-Array initialisieren
- 9. So fügen Sie Elemente in der Liste hinzu, wenn sie verwendet werden Arrays.asList()
- 10. Was ist die beste Art, mit Arrays.asList() eine Liste zu initialisieren
- 11. Die Begrenzung der Arrays.asList() ist in Denken in Java 4th Edition
- 12. Warum Liste <Integer[]> listOfArrays = Arrays.asList (new Integer [] {1, 2}) kompiliert nicht?
- 13. Klasse vs Paket vs Modul vs Komponente vs Container vs Service vs Plattform in Java Welt
- 14. Opa vs Dart vs Haxe vs Coffee
- 15. Akkumulieren vs falten vs reduzieren vs komprimieren
- 16. body.scrollTop vs documentElement.scrollTop vs window.pagYOffset vs window.scrollY
- 17. ACE vs Boost vs Poco vs wxWidgets
- 18. Inline vs __inline vs __inline__ vs __forceinline?
- 19. Metaphon vs Levenshtein vs Soundex vs Hamming
- 20. Standort vs GeoPoint vs 1E6 vs Aufladen
- 21. VS 2013 MSTest vs nUnit vs xUnit
- 22. Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs ExecDos vs ExeCmd
- 23. SpiderMonkey vs JavaScriptCore vs?
- 24. & vs * und | vs +
- 25. ArrayList-Deklaration vs Konvertierung
- 26. Bundler vs RVM vs Gems vs RubyGems vs Gemsets vs System Ruby
- 27. Mathematica: Unevaluated vs Aufschieben vs Halten vs Holdform vs HoldAllComplete vs etc etc
- 28. Android Studio VS Netbeans-> Drucken Sie jedes Array-Element
- 29. ScheduledExecutorService vs Timer vs Handler
- 30. HttpRequest vs HttpRequestMessage vs HttpRequestBase
Sie können auch Guavas 'ImmutableList.of()' und 'Lists.newArrayList()' in den Mix werfen. – biziclop
Nebenbei habe ich Collections.singletonList() Probleme verursacht, wenn eine Methode eine Liste zurückgibt, die später geändert wird. –