限制Java中HashMap的最大大小
我想限制a的最大大小,以HashMap对正在实现的各种哈希算法进行度量。我在的一个HashMap重载构造函数中查看了loadfactor 。
HashMap(int initialCapacity, float loadFactor)我尝试在构造函数中将loadFactor设置为0.0f(这意味着我不希望HashMap的大小从EVER增大),但javac将此无效:
Exception in thread "main" java.lang.IllegalArgumentException: Illegal load factor: 0.0        at java.util.HashMap.<init>(HashMap.java:177)
        at hashtables.CustomHash.<init>(Main.java:20)
        at hashtables.Main.main(Main.java:70) Java Result: 1
还有另一种方法来限制它的大小,HashMap使其永远不会增长吗?
回答:
有时越简单越好。
public class InstrumentedHashMap<K, V> implements Map<K, V> {    private Map<K, V> map;
    public InstrumentedHashMap() {
        map = new HashMap<K, V>();
    }
    public boolean put(K key, V value) {
        if (map.size() >= MAX && !map.containsKey(key)) {
             return false;
        } else {
             map.put(key, value);
             return true;
        }
    }
    ...
}
以上是 限制Java中HashMap的最大大小 的全部内容, 来源链接: utcz.com/qa/408282.html






