Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
I need to convert from List<Object> to String[].
List<Object>
String[]
I made:
List<Object> lst ... String arr = lst.toString();
But I got this st
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]);
String
lst.toArray(new String[0])
您必须遍历列表并填写您的String[].
如果列表是String值,List 那么这将像调用一样简单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 has the option of using streams like:
List<Object> lst = new ArrayList<>(); String[] strings = lst.stream().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));
Using Guava
List<Object> lst ... List<String> ls = Lists.transform(lst, Functions.toStringFunction());
There is a simple way available in Kotlin
var lst: List<Object> = ... listOFStrings: ArrayList<String> = (lst!!.map { it.name })