Also gibt es Arrays.asList(T... a)
aber das funktioniert auf varargs.
Was passiert, wenn ich das Array bereits in T[] a
habe? Gibt es eine Bequemlichkeitsmethode, um ein List<T>
daraus zu erstellen, oder muss ich es manuell tun als:
Nur weil es mit varargs funktioniert, heißt das nicht, dass Sie es nicht normal nennen können:
%Vor% Das einzige knifflige Bit ist, wenn T
ist Object
, wo Sie eine Umwandlung verwenden sollten, um dem Compiler mitzuteilen, ob es das Argument in ein Array umbrechen soll oder nicht:
oder
%Vor%Wie Sie wahrscheinlich bereits wissen, gibt es eine statische Klasse namens Java .util.Collections , die eine Reihe nützlicher Methoden zum Umgang mit Arrays wie Suchen und Sortieren bietet.
Wie bei Ihrer Frage gibt das Collection-Interface unter anderem Methoden für add
, remove
und toArray
an. Aus dem einen oder anderen Grund haben die Autoren der API entschieden, dass die Methode add
und addAll
die einzigen Eingabefunktionen für den Benutzer sein wird.
Eine Erklärung dafür, warum Java-Listen Arrays von Objekten nicht hinzufügen können, besteht darin, dass Listen einen Iterator verwenden und Iteratoren beim Scrollen strenger sind (dh zum nächsten Wert gehen) als Arrays, die nicht alle ihre Indexwerte i = (1, 2, 5, 9, 22, ...) .
Auch Arrays sind nicht typsicher ; Das heißt, sie können nicht garantieren, dass alle ihre Elemente einer bestimmten Superklasse oder Schnittstelle entsprechen, während Generika (zu denen List
gehört) die Typensicherheit garantieren können. Daher hat die Liste die Möglichkeit, jedes Element mit der Methode add
zu validieren.
Ich denke, dass Sie sich darauf verlassen können, dass Ihre Methode, ein Array zu einer Liste hinzuzufügen, eine der (wenn nicht die meisten) effizientesten Methoden ist, um diesen Effekt in Java zu erreichen.
Tags und Links java arrays collections