Unique Index Per String
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicLong;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Function;
import com.google.common.collect.MapMaker;
public class IniqueIndex {
private final AtomicLong counter = new AtomicLong();
private final ConcurrentMap<String, Long> map = new MapMaker().makeComputingMap(new Function<CharSequence, Long>() {
@Override
public Long apply(CharSequence cs) {
return counter.incrementAndGet();
}
});
@Override
public long resolve(CharSequence object) {
return map.get(object);
}
}
insert the code here
page revision: 0, last edited: 29 Mar 2011 14:04