question: public void remove ( Object object ) { int index = findIndex ( object ) ; if ( index != - 1 ) { count -- ; for ( int i = index ; i < count ; i ++ ) { objects [ i ] = objects [ i + 1 ] ; methods [ i ] = methods [ i + 1 ] ; } objects [ count ] = null ; methods [ count ] = null ; } }
target:  Removes first object/method pair matched (and only the first, must be called multiple times if object is registered multiple times). Does not shrink array afterwards, silently returns if method not found.