package org.mockserver.collections; import java.util.LinkedHashMap; import java.util.Map; /** * @author jamesdbloom */ public class CircularHashMap<K, V> extends LinkedHashMap<K, V> { static final long serialVersionUID = 1530623482381786485L; private final int maxSize; public CircularHashMap(int maxSize) { this.maxSize = maxSize; } @Override protected boolean removeEldestEntry(Map.Entry<K, V> eldest) { return size() > maxSize; } public K findKey(V value) { for (Map.Entry<K, V> entry : entrySet()) { V entryValue = entry.getValue(); if (entryValue == value || (value != null && value.equals(entryValue))) { return entry.getKey(); } } return null; } }