@Override public long getNumNgrams(int ngramOrder) { return maps[ngramOrder].size(); }
@Override public long getNumNgrams(final int ngramOrder) { return getMap(ngramOrder).size(); }
public long getTotalSize() { long ret = 0L; for (int ngramOrder = 0; ngramOrder < getMaxNgramOrder(); ++ngramOrder) { final HashMap currMap = getMap(ngramOrder); if (currMap == null) break; ret += currMap.size(); } return ret; }
/** * @param map * @param ngram * @param startPos * @param endPos * @param key * @param val * @param forcedNew * @param suffixIndex * @return */ private long putHelpWithSuffixIndex(final HashMap map, final int[] ngram, final int startPos, final int endPos, final long key, final T val, final boolean forcedNew, final long suffixIndex) { final int ngramOrder = endPos - startPos - 1; final long oldSize = map.size(); final long index = map.put(key); final boolean addWorked = values.add(ngram, startPos, endPos, ngramOrder, index, contextOffsetOf(key), wordOf(key), val, suffixIndex, map.size() > oldSize || forcedNew); if (!addWorked) return -1; return index; }
@Override public long put(final int[] ngram, int startPos, int endPos, final T val) { final int ngramOrder = endPos - startPos - 1; HashMap map = maps[ngramOrder]; if (map == null) { initMap(initCapacities[ngramOrder], ngramOrder); map = maps[ngramOrder]; } if (map instanceof ExplicitWordHashMap && map.getLoadFactor() >= maxLoadFactor) { rehash(ngramOrder, map.getCapacity() * 3 / 2); map = maps[ngramOrder]; } final long key = getKey(ngram, startPos, endPos); if (key < 0) return -1L; long oldSize = map.size(); final long index = map.put(key); final long suffixIndex = getSuffixOffset(ngram, startPos, endPos); values.add(ngram, startPos, endPos, ngramOrder, index, contextOffsetOf(key), wordOf(key), val, suffixIndex, map.size() > oldSize); return index; }