/**
* 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();
}
项目:pre-cu
文件:AutoDeltaLongByteMap.java
public AutoDeltaLongByteMap() {
this.changes = new ArrayList<>(5);
this.container = new TLongByteHashMap();
this.baselineCommandCount = 0;
}
项目:pre-cu
文件:AutoDeltaLongBoolMap.java
public AutoDeltaLongBoolMap() {
this.changes = new ArrayList<>(5);
this.container = new TLongByteHashMap();
this.baselineCommandCount = 0;
}