web-dev-qa-db-fra.com

ArrayList <String> à CharSequence []

Quelle serait la façon la plus simple de créer un CharSequence[] hors de ArrayList<String>?

Bien sûr, je pourrais parcourir tous les éléments ArrayList et les copier dans le tableau CharSequence, mais peut-être y a-t-il un moyen meilleur/plus rapide?

64
Laimoncijus

Vous pouvez utiliser List#toArray(T[]) pour cela.

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

Voici une petite démo:

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]
232
BalusC

Étant donné que le type String implémente déjà CharSequence, cette conversion est aussi simple que de demander à la liste de se copier dans un nouveau tableau, qui ne copiera en fait aucune des données de caractères sous-jacentes. Vous copiez simplement des références à des instances de String autour:

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