public synchronized void removeElement ( T element ) { List < T > origList = ref . get ( ) . list ; boolean isPresent = origList . contains ( element ) ; if ( ! isPresent ) { return ; } List < T > newList = new ArrayList < T > ( origList ) ; newList . remove ( element ) ; swapWithList ( newList ) ; }
Remove an element from this list . This causes the inner list to be swapped out