Convert ArrayList To a String Array Tag(s): Language
You can't convert directly an ArrayList to a String array. For example,
import java.util.List;
import java.util.ArrayList;
List<String> al = new ArrayList<String>();
al.add("a string");
String[] stringArr = new String[al.size()];
stringArr = (String []) al.toArray();
for (String s: stringArr) System.out.println("** " + s);
> [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
To make it work, you need to give to the JVM an hint about the class type involved.
The solution can be
String[] stringArr = new String[al.size()];
stringArr = al.toArray(stringArr); // give the target array as parameter to
// to inform the JVM that we are using
// a String array
for (String s: stringArr) System.out.println("** " + s);
String[] stringArr = al.toArray(new String[] {});
for (String s: stringArr) System.out.println("** " + s);
In Java 8,
import java.util.List;
import java.util.ArrayList;
public class ArrayTest {
public static void main(String[] args) {
List<String> al = new ArrayList<String>();
al.add("a string");
String[] stringArr = al.stream().toArray(String[]::new); // using Java 8 streams
for (String s: stringArr) System.out.println("** " + s);
}
}
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com