web-dev-qa-db-fra.com

Convertir la liste <Objet> en chaîne [] dans Java

Je dois convertir de List<Object> à String[].

J'ai fait:

List<Object> lst ...
String arr = lst.toString();

Mais j'ai cette chaîne:

["...", "...", "..."]

est juste une chaîne, mais j'ai besoin de String []

Merci beaucoup.

16
calbertts

Vous devez parcourir la liste et remplir votre String[].

String[] array = new String[lst.size()];
int index = 0;
for (Object value : lst) {
  array[index] = (String) value;
  index++;
}

Si la liste était composée de String valeurs, List, ce serait aussi simple que d'appeler lst.toArray(new String[0]);

20
Dan D.

Vous pouvez utiliser toArray () pour convertir en un tableau d'objets suivi de cette méthode pour convertir le tableau d'objets en un tableau de chaînes:

Object[] objectArray = lst.toArray();
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
14
Steve Chambers

Si nous sommes très sûrs que List<Object> contiendra une collection de String, alors essayez probablement ceci.

List<Object> lst = new ArrayList<Object>();
lst.add("sample");
lst.add("simple");
String[] arr = lst.toArray(new String[] {});
System.out.println(Arrays.deepToString(arr));
5
sundar

Java 8 a la possibilité d'utiliser des flux comme:

List<Object> lst = new ArrayList<>();
String[] strings = lst.stream().toArray(String[]::new);
5
i_am_zero

Utilisation de Guava

List<Object> lst ...    
List<String> ls = Lists.transform(lst, Functions.toStringFunction());
2
husayt

Beaucoup de concepts ici qui seront utiles:

List<Object> list = new ArrayList<Object>(Arrays.asList(new String[]{"Java","is","cool"}));
String[] a = new String[list.size()];
list.toArray(a);

Astuce pour imprimer un tableau de chaînes:

System.out.println(Arrays.toString(a));
2
Srujan Kumar Gulla