Converting a Collection to an Array
Problem
You have a Collection but you
need a Java language array.
Solution
Use the Collection method toArray( )
.
Discussion
If you have an ArrayList or other
Collection and you need a Java language array, you
can get it just by calling the Collection’s
toArray( ) method. With no arguments you get an
array whose type is Object[]. You can optionally
provide an array argument, which is used for two purposes:
The type of the array argument determines the type of array returned.
If the array is big enough (you can control this with the
Collection’ssize( )method), then this array is filled and returned. If the array is not big enough, a new array is allocated instead. If you provide an array and there are objects in theCollectionthat cannot be casted to this type, then you get anArrayStoreException.
Example 7-1 shows code for converting an
ArrayList to an array of type
Object.
Example 7-1. ToArray.java
import java.util.*; /** ArrayList to array */ public class ToArray { public static void main(String[] args) { ArrayList al = new ArrayList( ); al.add("Blobbo"); al.add("Cracked"); al.add("Dumbo"); // al.add(new Date( )); // Don't mix and match! // Convert a collection to Object[], which can store objects // of any type. Object[] ol = al.toArray( ); System.out.println("Array of Object has length " + ol.length); // This would throw an ArrayStoreException if the line // "al.add(new Date( ))" above were uncommented. String[] sl = (String[]) al.toArray(new ...