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 theCollection
that 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 ...
Get Java Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.