- 清单 7. WeakHashMap.expungeStaleEntries() 的可能实现
- private void expungeStaleEntries() {
- Entry e;
- while( (e = (Entry) queue.poll()) != null) {
- inthash = e.hash;
- Entry prev = getChain(hash);
- Entry cur = prev;
- while(cur !=null) {
- Entry next = cur.next;
- if(cur == e) {
- if(prev == e)
- setChain(hash, next);
- else
- prev.next = next;
- break;
- }
- prev = cur;
- cur = next;
- }
- }
- }
来源: http://www.bubuko.com/infodetail-1978840.html