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?

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]

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()]);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.