/** * Get the total search weight from the multi-result hashmap. * * @param UnigramSearchHistogram The histogram to perform the action on * @param word Key Hash key of the word * @return The total weight of the word in the multi-result map */ protected static int getMultiResultCount(UnigramSearchHistogram histogram, int wordKey) { TLongByteHashMap hashMap = histogram.multiResultMap.get(wordKey); int count = 0; if (hashMap != null) { for (byte resultCount : hashMap.values()) { count += resultCount; } } return count; }
/** * Removes a word/result from the search histogram. If the word is associated with multiple results, they will be left alone. * * @param UnigramSearchHistogram The histogram to perform the action on * @param word Key Hash key of the word * @param resultKey The result to be removed. * @return Returns the total number of words in this histogram after removal */ protected static int removeInternal(UnigramSearchHistogram histogram, int wordKey, Long resultKey) { int count = 0; TLongByteHashMap hashMap = histogram.multiResultMap.get(wordKey); if (hashMap == null) { // not more than 1 result already if (histogram.singleResultMap.contains(wordKey)) { // one result histogram.singleResultMap.remove(wordKey); // now no results } } else { // more than 1 result already if (hashMap.contains(resultKey)) { hashMap.remove(resultKey); } count = UnigramSearchHistogram.getMultiResultCount(histogram, wordKey); if (count == 1) { histogram.singleResultMap.put(wordKey, resultKey); count = 1; } } count = UnigramSearchHistogram.getOccuranceCount(histogram, wordKey); if (count == 1) { histogram.singleResultMap.put(wordKey, resultKey); // now one result histogram.multiResultMap.remove(wordKey); } return histogram.singleResultMap.size() + histogram.multiResultMap.size(); }
public AutoDeltaLongByteMap() { this.changes = new ArrayList<>(5); this.container = new TLongByteHashMap(); this.baselineCommandCount = 0; }
public AutoDeltaLongBoolMap() { this.changes = new ArrayList<>(5); this.container = new TLongByteHashMap(); this.baselineCommandCount = 0; }