编辑:我刚刚发现您可以Map.Entry.setValue
通过(并且HashMap
实现是可变的)修改条目。不过,获取特定键的条目是一件痛苦的事,而且我不记得曾经见过有人这样做。据我所知,您可以获得一组条目,但无法获得单个键的条目。
有一种邪恶的做法 -HashMap
在java.util
包中声明您自己的子类,并创建一个仅委托给包私有现有方法的公共方法:
package java.util;
// Please don't actually do this...
public class BadMap<K, V> extends HashMap<K, V> {
public Map.Entry<K, V> getEntryPublic(K key) {
return getEntry(key);
}
}
不过这很恶心。
您通常不会修改条目- 但当然您可以更改值中的数据,如果那是可变类型的话。
我非常怀疑这实际上是一个性能瓶颈,除非你经常这样做。在开始尝试微调可能不是问题的东西之前,您应该分析您的应用程序以向自己证明这是一个真正的问题。
如果它确实是一个问题,您可以将(比如说)a 更改Map<Integer, String>
为 aMap<Integer, AtomicReference<String>>
并将 theAtomicReference<T>
用作简单的可变包装器类型。