### Question:
DefaultOverlayManager extends AbstractList<Overlay> implements OverlayManager { @Override public Overlay remove(final int pIndex) { return mOverlayList.remove(pIndex); } DefaultOverlayManager(final TilesOverlay tilesOverlay); @Override Overlay get(final int pIndex); @Override int size(); @Override void add(final int pIndex, final Overlay pElement); @Override Overlay remove(final int pIndex); @Override Overlay set(final int pIndex, final Overlay pElement); @Override TilesOverlay getTilesOverlay(); @Override void setTilesOverlay(final TilesOverlay tilesOverlay); @Override Iterable<Overlay> overlaysReversed(); @Override List<Overlay> overlays(); @Override void onDraw(final Canvas c, final MapView pMapView); @Override void onDraw(final Canvas c, final Projection pProjection); @Override void onDetach(final MapView pMapView); @Override void onPause(); @Override void onResume(); @Override boolean onKeyDown(final int keyCode, final KeyEvent event, final MapView pMapView); @Override boolean onKeyUp(final int keyCode, final KeyEvent event, final MapView pMapView); @Override boolean onTouchEvent(final MotionEvent event, final MapView pMapView); @Override boolean onTrackballEvent(final MotionEvent event, final MapView pMapView); @Override boolean onSnapToItem(final int x, final int y, final Point snapPoint, final IMapView pMapView); @Override boolean onDoubleTap(final MotionEvent e, final MapView pMapView); @Override boolean onDoubleTapEvent(final MotionEvent e, final MapView pMapView); @Override boolean onSingleTapConfirmed(final MotionEvent e, final MapView pMapView); @Override boolean onDown(final MotionEvent pEvent, final MapView pMapView); @Override boolean onFling(final MotionEvent pEvent1, final MotionEvent pEvent2,
                           final float pVelocityX, final float pVelocityY, final MapView pMapView); @Override boolean onLongPress(final MotionEvent pEvent, final MapView pMapView); @Override boolean onScroll(final MotionEvent pEvent1, final MotionEvent pEvent2,
                            final float pDistanceX, final float pDistanceY, final MapView pMapView); @Override void onShowPress(final MotionEvent pEvent, final MapView pMapView); @Override boolean onSingleTapUp(final MotionEvent pEvent, final MapView pMapView); @Override void setOptionsMenusEnabled(final boolean pEnabled); @Override boolean onCreateOptionsMenu(final Menu pMenu, final int menuIdOffset, final MapView mapView); @Override boolean onPrepareOptionsMenu(final Menu pMenu, final int menuIdOffset, final MapView mapView); @Override boolean onOptionsItemSelected(final MenuItem item, final int menuIdOffset, final MapView mapView);  }### Answer:
@Test public void testIntegerReversed() { ListTest<Integer> list; final ListTester<Integer> tester = new ListTester<>(); list = new ListTest<>(); tester.test(list); list = new ListTest<Integer>() { @Override public void remove() { synchronized (mList) { super.remove(); } } @Override public ListIterator<Integer> reverseIterator() { synchronized (mList) { return unprotectedReverseListIterator(); } } }; tester.test(list); list = new ListTest<Integer>() { @Override public ListIterator<Integer> reverseIterator() { synchronized (mList) { return unprotectedReverseListIterator(); } } }; }