ArrayList <String>to CharSequence [] - PullRequest
63 голосов
/ 13 июня 2010

Какой самый простой способ сделать CharSequence[] из ArrayList<String>?

Конечно, я могу перебирать каждый элемент ArrayList и копировать в массив CharSequence, но, может быть, есть лучший / более быстрый способ?

Ответы [ 2 ]

231 голосов
/ 13 июня 2010

Для этого вы можете использовать List#toArray(T[]).

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

Вот небольшая демонстрация:

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]
13 голосов
/ 13 июня 2010

Учитывая, что тип String уже реализует CharSequence, это преобразование так же просто, как запрос списка, чтобы скопировать себя в новый массив, который фактически не будет копировать какие-либо базовые символьные данные. Вы просто копируете ссылки на String экземпляров вокруг:

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