I need to convert from List<Object>
to String[]
.
I made:
List<Object> lst ...
String arr = lst.toString();
But I got this string:
["...", "...", "..."]
is just one string, but I need String[]
Thanks a lot.
I need to convert from List<Object>
to String[]
.
I made:
List<Object> lst ...
String arr = lst.toString();
But I got this string:
["...", "...", "..."]
is just one string, but I need String[]
Thanks a lot.
You have to loop through the list and fill your String[]
.
String[] array = new String[lst.size()];
int index = 0;
for (Object value : lst) {
array[index] = (String) value;
index++;
}
If the list would be of String
values, List then this would be as simple as calling lst.toArray(new String[0])
;
You could use toArray() to convert into an array of Objects followed by this method to convert the array of Objects into an array of Strings:
Object[] objectArray = lst.toArray();
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
Java 8
Java 8 has the option of using streams as well.
List<Object> lst = new ArrayList<>();
lst.add("Apple");
String[] strings = lst.stream().toArray(String[]::new);
System.out.println(Arrays.toString(strings)); // [Apple]
If we have a stream of Object
, we would need an intermediate operation to do object-to-string conversion, and a terminal operation to collect the results. We can use Objects.toString(obj, null)
or any other such implementation for string conversion.
String[] output = lst.stream()
.map((obj) -> Objects.toString(obj, null))
.toArray(String[]::new);
If we are very sure that List<Object>
will contain collection of String
, then probably try this.
List<Object> lst = new ArrayList<Object>();
lst.add("sample");
lst.add("simple");
String[] arr = lst.toArray(new String[] {});
System.out.println(Arrays.deepToString(arr));
Lot of concepts here which will be useful:
List<Object> list = new ArrayList<Object>(Arrays.asList(new String[]{"Java","is","cool"}));
String[] a = new String[list.size()];
list.toArray(a);
Tip to print array of Strings:
System.out.println(Arrays.toString(a));