question: public Object [ ] toArray ( ) { ArrayList < E > al = new ArrayList < E > ( ) ; for ( Node < E > p = first ( ) ; p != null ; p = succ ( p ) ) { E item = p . item ; if ( item != null ) al . add ( item ) ; } return al . toArray ( ) ; }
target:  Returns an array containing all of the elements in this queue, in proper sequence. <p>The returned array will be "safe" in that no references to it are maintained by this queue.  (In other words, this method must allocate a new array).  The caller is thus free to modify the returned array. <p>This method acts as bridge between array-based and collection-based APIs.