question: protected void dispose ( IInterval interval ) { if ( intervals == null ) { return ; } for ( int i = intervals . size ( ) - 1 ; i >= 0 ; i -- ) { IInterval ival = intervals . get ( i ) ; if ( ( interval . getLeft ( ) == ival . getLeft ( ) ) && ( interval . getRight ( ) == ival . getRight ( ) ) ) { intervals . remove ( i ) ; break ; } } }
target:  Algorithms over SegmentTrees often store additional information with  each node, and may wish to clear information and/or perform computations when a segment is deleted.  This method is overridden by subclasses as required. For dynamic reasons, search from end to front.