public void insertAfter(Object prevItem, Object newItem) {
   ListElement newElem, nextElem, pointerElem;
   pointerElem = startElem.getNextElem();
   while (pointerElem != null && !pointerElem.getObj().equals(prevItem)) {
     pointerElem = pointerElem.getNextElem();
   }
   newElem = new ListElement(newItem);
   nextElem = pointerElem.getNextElem();
   pointerElem.setNextElem(newElem);
   newElem.setNextElem(nextElem);
 }
 public void delete(Object o) {
   ListElement le = startElem;
   while (le.getNextElem() != null && !le.getObj().equals(o)) {
     if (le.getNextElem().getObj().equals(o)) {
       if (le.getNextElem().getNextElem() != null) le.setNextElem(le.getNextElem().getNextElem());
       else {
         le.setNextElem(null);
         break;
       }
     }
     le = le.getNextElem();
   }
 }
 public void writeList() {
   ListElement le = startElem;
   while (le != null) {
     System.out.println(le.getObj());
     le = le.getNextElem();
   }
 }
 public ListElement getLastElem() {
   ListElement le = startElem;
   while (le.getNextElem() != null) {
     le = le.getNextElem();
   }
   return le;
 }