Fill a array with List data
How can I fill a array with the data provided by one List?
For example, I have a List with Strings:
List l = new ArrayList<String>(开发者_JS百科);
l.add("a");
l.add("b");
l.add("c");
then I want to copy this data into a String array:
String[] array = ?
There's a toArray() method in list...
You have to first allocate an array of an appropriate size (typically list.size()), and then pass it to the toArray method as a parameter. The array will be initialized with the list content.
For example:
String[] myArray = new String[myList.size]();
myList.toArray(myArray);
You can also do the new call inside the parentheses of toArray
First, you have to specify the concrete type of the List
- List<String>
(don't leave it raw).
Then, you can do
String[] array = list.toArray(new String[list.size()]);
You can use the toArray(T[] a)
method:
String[] arr = list.toArray(new String[0]);
Or alternately:
String[] arr = list.toArray(new String[list.size()]);
The difference between the two is that the latter may not need to allocate a new array.
Effective Java 2nd Edition: Item 23: Don't use raw types in new code.
JLS 4.8 Raw Types
The use of raw types is allowed only as a concession to compatibility of legacy code. The use of raw types in code written after the introduction of genericity into the Java programming language is strongly discouraged. It is possible that future versions of the Java programming language will disallow the use of raw types.
Don't make a habit of naming an identifier l
. It looks an awful lot like 1
.
Syntax is a little goofy; you have to provide your own created array as input.
String[] array = l.toArray(new String[l.size()]);
String[] array = new String[l.size()];
l.toArray(array);
精彩评论