package com.antbrains.crf;
import gnu.trove.iterator.TObjectIntIterator;
import gnu.trove.map.hash.TObjectIntHashMap;
public class TroveFeatureDict implements FeatureDict {
private static final long serialVersionUID = -8540035290826219173L;
private TObjectIntHashMap<String> dict;
@Override
public int get(String feature, boolean addIfNotExist) {
int id = dict.get(feature);
if (id >= 0)
return id;
if (addIfNotExist) {
id = dict.size();
dict.put(feature, id);
}
return id;
}
public TroveFeatureDict(int initSize) {
dict = new TObjectIntHashMap<String>(initSize, 0.8f, -1);
}
@Override
public int size() {
return dict.size();
}
@Override
public TObjectIntIterator<String> iterator() {
return dict.iterator();
}
}