public boolean remove(Object o) {
   if (myHashSet.remove(o)) {
     myElements.remove(o);
     return true;
   }
   return false;
 }
 public boolean add(T o) {
   if (myHashSet.add(o)) {
     myElements.add(o);
     return true;
   }
   return false;
 }
 public T remove(final int index) {
   final T t = myElements.remove(index);
   myHashSet.remove(t);
   return t;
 }
 public void add(final int index, final T element) {
   if (myHashSet.add(element)) {
     myElements.add(index, element);
   }
 }
 public void clear() {
   myHashSet.clear();
   myElements.clear();
 }
 public boolean contains(Object o) {
   return myHashSet.contains(o);
 }
 public int lastIndexOf(final Object o) {
   final int index = myHashSet.index((T) o);
   return index >= 0 ? myElements.lastIndexOf(myHashSet.get(index)) : -1;
 }