public synchronized boolean add(E e) {Object[] newElements = new Object[elements.length + 1];System.arraycopy(elements, 0, newElements, 0, elements.length);newElements[elements.length] = e;elements = newElements;return true;}
public virtual bool add(E e){lock (this){object[] newElements = new object[elements.Length + 1];System.Array.Copy(elements, 0, newElements, 0, elements.Length);newElements[elements.Length] = e;elements = newElements;return true;}}