java - How can I transform a List of List (multidimensional List) to an Array of Array(multidimensional Array)? -


i have written code, @ run time have error:

[ljava.lang.object; cannot cast [[ljava.lang.string; please me, thanks!!!

public  java.util.list<string>  concatall(java.util.list<java.util.list<string>> mergedlist) {        java.lang.string [][] mergedarray = (string[][])mergedlist.toarray();      iterator<java.util.list<string>> itr = mergedlist.iterator();       java.util.list<string> list1 = itr.next();            java.lang.string [] firstarray = (string[])list1.toarray();                     int totallength = firstarray.length;           (string[] array : mergedarray) {             totallength += array.length;           }           string[] result = arrays.copyof(firstarray, totallength);           int offset = firstarray.length;           (string[] array : mergedarray) {             system.arraycopy(array, 0, result, offset, array.length);             offset += array.length;           }           java.util.list<string> finallist = arrays.aslist(result);           (string list : finallist)               system.out.println(list);      return finallist; } 

there's no out-of-the-box method, it's straightforward hand:

// create outer dimension of array, same size total list string[][] mergedarray = new string[mergedlist.size()][];  // iterate on each nested list , convert them string[] // instances form inner dimension (int = 0; < mergedlist.size(); i++) {     mergedarray[i] = mergedlist.get(i).toarray(new string[0]); } 

a more efficient version of loop body be

list<string> innerlist = mergedlist.get(i); string[] innerasarray = innerlist.toarray(new string[innerlist.size()]); mergedarray[i] = innerasarray; 

as avoids array resizing required in initial example (the new string[0] isn't large enough hold list elements). quite frankly, unless performance critical loop, i'd prefer first version find clearer see what's going on.


Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

python - pip wont install .WHL files -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -