LinkedHashMap如何移除最早放入的键值对
时间: 2023-10-26 09:58:55 浏览: 77
java集合-LinkedHashMap的使用
LinkedHashMap移除最早放入的键值对是通过重写`removeEldestEntry`方法来实现的。在LinkedHashMap中,默认的`removeEldestEntry`方法会返回false,表示不移除最早放入的键值对。如果我们希望移除最早放入的键值对,需要重写`removeEldestEntry`方法,并根据自己的逻辑返回true。
举个例子,假设我们希望当LinkedHashMap中的键值对数量超过10个时,移除最早放入的键值对。我们可以通过如下方式重写`removeEldestEntry`方法:
```java
LinkedHashMap<K, V> linkedHashMap = new LinkedHashMap<K, V>(16, 0.75f, true) {
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > 10;
}
};
```
在上述代码中,我们创建了一个LinkedHashMap对象,并重写了其中的`removeEldestEntry`方法。在该方法中,我们判断当前键值对的数量是否大于10,如果是,则返回true,表示需要移除最早放入的键值对;否则,返回false,表示不需要移除。这样,当我们向这个重写了`removeEldestEntry`方法的LinkedHashMap对象中放入键值对时,如果数量超过了10个,就会自动移除最早放入的键值对。
<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [LinkedHashMap深度解析](https://blog.csdn.net/m0_73088370/article/details/126625529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Java集合(六)LinkedHashMap详解](https://blog.csdn.net/qq_41969790/article/details/106154225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文