어떻게 JAVA 에서 고정 최대 크기 의 hashMap 을 실현 합 니까?

2326 단어 HashMap
어떻게 JAVA 에서 고정 최대 크기 의 hashMap 을 실현 합 니까?
링크 드 HashMap 의 removeEldestEntry 방법 을 이용 하여 이 방법 을 다시 불 러 오 면 이 map 는 최대 size 로 늘 어 날 수 있 습 니 다. 그 후에 새로운 기록 을 삽입 할 때마다 가장 오래된 기록 을 삭제 합 니 다.
import java.util.LinkedHashMap;

import java.util.Map;



public class MaxSizeHashMap<K, V> extends LinkedHashMap<K, V> {

    private final int maxSize;



    public MaxSizeHashMap(int maxSize) {

        this.maxSize = maxSize;

    }





    //

    //Returns true if this map should remove its eldest entry. 

    //This method is invoked by put and putAll after inserting a new entry into the map. 

    //It provides the implementor with the opportunity to remove the eldest entry each time a new 

    //one is added. This is useful if the map represents a cache: 

    //    it allows the map to reduce memory consumption by deleting stale entries. 

    //

    @Override

    protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {

        return size() > maxSize;

    }

}

 

좋은 웹페이지 즐겨찾기