ArrayList <String> zu CharSequence []

73

Was wäre der einfachste Weg, um CharSequence[]daraus etwas zu machen ArrayList<String>?

Sicher, ich könnte jedes ArrayListElement durchlaufen und in ein CharSequenceArray kopieren , aber vielleicht gibt es einen besseren / schnelleren Weg?

Laimoncijus
quelle

Antworten:

248

Sie können List#toArray(T[])dies verwenden.

CharSequence[] cs = list.toArray(new CharSequence[list.size()]);

Hier ist eine kleine Demo:

List<String> list = Arrays.asList("foo", "bar", "waa");
CharSequence[] cs = list.toArray(new CharSequence[list.size()]);
System.out.println(Arrays.toString(cs)); // [foo, bar, waa]
BalusC
quelle
16
+1 - Der Punkt ist, dass CharSequencees sich um eine Schnittstelle handelt und diese Stringimplementiert.
Stephen C
15

Da dieser Typ Stringbereits implementiert ist CharSequence, ist diese Konvertierung so einfach wie das Auffordern der Liste, sich selbst in ein neues Array zu kopieren, das keine der zugrunde liegenden Zeichendaten kopiert. Sie kopieren nur Verweise auf StringInstanzen in der Umgebung von:

final CharSequence[] chars = list.toArray(new CharSequence[list.size()]);
seh
quelle