@SuppressWarnings("rawtypes") @Override public void clear() { while (queue.poll() != null) ; modCount++; Entry[] tab = table; for (int i = 0; i < tab.length; ++i) { tab[i] = null; } size = 0; while (queue.poll() != null) ; }
@SuppressWarnings("unchecked") private void expungeStaleEntries() { Entry<K, V> e; while ((e = (Entry<K, V>) queue.poll()) != null) { int h = e.hash; int i = indexFor(h, table.length); Entry<K, V> prev = table[i]; Entry<K, V> p = prev; while (p != null) { Entry<K, V> next = p.next; if (p == e) { if (prev == e) { table[i] = next; } else { prev.next = next; } e.next = null; e.value = null; size--; break; } prev = p; p = next; } } }