public synchronized void remove(final Object object) {
        if (object instanceof GeoitemLayer) {
            final GeoitemLayer item = (GeoitemLayer) object;
            final boolean result = this.geoitems.remove(item.getItem().getItemCode()) != null;
            if (result && item.getItem().getType() == CoordinateType.CACHE) {
                cacheCodes.remove(item.getItemCode());
            }
        }
    }
ordered set of items to be displayed
main/src/main/java/cgeo/geocaching/maps/mapsforge/v6/caches/GeoitemLayers.java