/** * @return Iterator for the counter. Ignores the {@code null} key (if present). */ public TObjectIntIterator<T> getIterator() { return m_map.iterator(); }
@SuppressWarnings("unchecked") public IFeatureDB cloneDB() { TroveFeaturesDB featuresDB = new TroveFeaturesDB(); featuresDB._name = new String(_name); TObjectIntIterator<String> iterator = _featuresMap.iterator(); while (iterator.hasNext()) { iterator.advance(); featuresDB._featuresMap.put(iterator.key(), iterator.value()); } featuresDB._featuresRMap = (Vector<String>) _featuresRMap.clone(); return featuresDB; } }
public void removeFeatures(IIntIterator removedFeatures) { int shift = 0; int lastGoodFeature = 0; int totalFeatures = _featuresMap.size(); TIntIntHashMap featuresRemap = new TIntIntHashMap(); while (removedFeatures.hasNext()) { int removedFeature = removedFeatures.next(); while (lastGoodFeature < removedFeature) { featuresRemap.put(lastGoodFeature, lastGoodFeature - shift); ++lastGoodFeature; } lastGoodFeature = removedFeature + 1; int removedFeaturePosition = removedFeature - shift; _featuresMap.remove(_featuresRMap.get(removedFeaturePosition)); _featuresRMap.remove(removedFeaturePosition); ++shift; } while (lastGoodFeature < totalFeatures) { featuresRemap.put(lastGoodFeature, lastGoodFeature - shift); ++lastGoodFeature; } TObjectIntIterator<String> mapIter = _featuresMap.iterator(); while (mapIter.hasNext()) { mapIter.advance(); int value = mapIter.value(); int newvalue = featuresRemap.get(value); mapIter.setValue(newvalue); } }