code: @Override
      @SuppressWarnings("unchecked")
      public <T> T[] toArray(T[] a) {
          Character[] b;
          if (a.length < size()) b = new Character[size()];
          else b = (Character[]) a;
          objectUnwrap(iterator(), b);
          return (T[]) b;
  
      }
docs: Returns an array containing all of the elements in this list in
  proper sequence (from first to last element); the runtime type of
  the returned array is that of the specified array.  If the list 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 list.
  <br>If the list fits in the specified array with room to spare (i.e.,
  the array has more elements than the list), the element in the array
  immediately following the end of the list is set to <tt>null</tt>.
  (This is useful in determining the length of the list <i>only</i> if
  the caller knows that the list does not contain any null elements.)
  <br>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.
  <br>Suppose <tt>x</tt> is a list known to contain only strings.
  The following code can be used to dump the list into a newly
  allocated array of <tt>String</tt>:
  <br>
  <pre>{@code
  String[] y = x.toArray(new String[0]);
  }</pre>
  <br>
  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 list 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 the elements of this list
  @throws ArrayStoreException  if the runtime type of the specified array
  is not a supertype of the runtime type of every element in
  this list
  @throws NullPointerException if the specified array is null