// Removing elements from a list.// Removing is a relatively slow operation (except for removing// the last elemement) since ArrayList must slide down// all the elements after it.// Removing When you know the element's positionarrayList.remove(i, object );// Removing when you don't know the element's position.// This is slower that positional removing since ArrayList// must do a linear search for a match. It is faster if the list is// sorted, and you find the element first with a binarySearch.arrayList.add(object );// Removing undesirable elements from the ENTIRE list.// You must work backwards. The list shrinks as we go.// E.g. removing empty Strings.for (int i=arrayList.size(); i>=0; i-- ){String element = (String)arrayList.get(i);if (element == null || element.length()== 0 ){arrayList.remove(i);}}// Removing undesirable elements from the TAIL END of a list.// You must work backwards. The list shrinks as we go.// E.g. removing empty Strings.for (int i=arrayList.size(); i>=0; i-- ){String element = (String)arrayList.get(i);if (element == null || element.length()== 0 ){arrayList.remove(i);}else{break;}}// Removing undesirable elements from the head end of a list.// You work forwards without incrementing, always working on element 0.// The list shrinks as we go.// E.g. removing empty Strings.while (arrayList.size()> 0 ){String element = (String)arrayList.get(0);if (element == null || element.length()== 0 ){arrayList.remove(0);}else{break;}}// If you just want to chop off the last m elements// This is most efficient.arrayList.setSize(arrayList.size()- m );// Odd as it looks, this also removes a slice of the// ArrayList. It does not just nullify it.arrayList.subList(from, to ).clear();