(Entry e)
| 45 | } |
| 46 | |
| 47 | private void updateFrequency(Entry e) { |
| 48 | int oldFreq = e.freq; |
| 49 | int newFreq = oldFreq + 1; |
| 50 | |
| 51 | freqMap.get(oldFreq).remove(e); |
| 52 | if (freqMap.get(oldFreq).isEmpty()) { |
| 53 | freqMap.remove(oldFreq); |
| 54 | if (minFreq == oldFreq) minFreq++; |
| 55 | } |
| 56 | |
| 57 | e.freq = newFreq; |
| 58 | freqMap.computeIfAbsent(newFreq, k -> new LinkedHashSet<>()).add(e); |
| 59 | } |
| 60 | |
| 61 | private void evictLeastFrequent() { |
| 62 | LinkedHashSet<Entry> minFreqEntries = freqMap.get(minFreq); |