@SuppressWarnings("unchecked")
 public <T> T[] toArray(T[] a) {
   int sz = this.size;
   return (T[])
       ArrayTools.fill(
           ((a.length >= sz) ? a : ArrayTools.newInstance(a, sz)), 0, sz, this.getElement());
 }
 public Object[] toArray() {
   return ArrayTools.fill(new Object[this.size], this.getElement());
 }