/** * Returns an array containing all of the elements in this set; the runtime type of the returned * array is that of the specified array. If the set fits in the specified array, it is returned * therein. Otherwise, a new array is allocated with the runtime type of the specified array and * the size of this set. * * <p>If this set fits in the specified array with room to spare (i.e., the array has more * elements than this set), the element in the array immediately following the end of the set is * set to <tt>null</tt>. (This is useful in determining the length of this set <i>only</i> if the * caller knows that this set does not contain any null elements.) * * <p>If this set makes any guarantees as to what order its elements are returned by its iterator, * this method must return the elements in the same order. * * <p>Like the {@link #toArray()} method, this method acts as bridge between array-based and * collection-based APIs. Further, this method allows precise control over the runtime type of the * output array, and may, under certain circumstances, be used to save allocation costs. * * <p>Suppose <tt>x</tt> is a set known to contain only strings. The following code can be used to * dump the set into a newly allocated array of <tt>String</tt>: * * <pre> * String[] y = x.toArray(new String[0]); * </pre> * * Note that <tt>toArray(new Object[0])</tt> is identical in function to <tt>toArray()</tt>. * * @param a the array into which the elements of this set are to be stored, if it is big enough; * otherwise, a new array of the same runtime type is allocated for this purpose. * @return an array containing all the elements in this set * @throws ArrayStoreException if the runtime type of the specified array is not a supertype of * the runtime type of every element in this set * @throws NullPointerException if the specified array is null */ public <T> T[] toArray(T[] a) { return al.toArray(a); }
/** * Returns an array containing all of the elements in this set. If this set makes any guarantees * as to what order its elements are returned by its iterator, this method must return the * elements in the same order. * * <p>The returned array will be "safe" in that no references to it are maintained by this set. * (In other words, this method must allocate a new array even if this set is backed by an array). * The caller is thus free to modify the returned array. * * <p>This method acts as bridge between array-based and collection-based APIs. * * @return an array containing all the elements in this set */ public Object[] toArray() { return al.toArray(); }