gpt4 book ai didi

java - 在 Java 中限制 HashMap 的最大大小

转载 作者:IT老高 更新时间:2023-10-28 21:01:42 26 4
gpt4 key购买 nike

我想限制 HashMap 的最大大小,以便对我正在实现的各种散列算法进行度量。我查看了 HashMap 的一个重载构造函数中的负载因子。

HashMap(int initialCapacity, float loadFactor) 

我尝试在构造函数中将 loadFactor 设置为 0.0f(这意味着我不希望 HashMap 的大小永远增长)但是 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 的大小,使其永远不会增长吗?

最佳答案

您可以像这样创建一个新类来限制 HashMap 的大小:

public class MaxSizeHashMap<K, V> extends LinkedHashMap<K, V> {
private final int maxSize;

public MaxSizeHashMap(int maxSize) {
this.maxSize = maxSize;
}

@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > maxSize;
}
}

关于java - 在 Java 中限制 HashMap 的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com