code: @SuppressWarnings({"SuspiciousToArrayCall"})
    public <T> T[] toArray(T[] o) {
      Iterator<E> iter = iterator();
      ArrayList<E> al = new ArrayList<E>();
      while (iter.hasNext()) {
        al.add(iter.next());
      }
      return al.toArray(o);
    }
docs: Can be slow.  Usage not recommended.