gpt4 book ai didi

java - 将 Map 的键值对作为对象访问

转载 作者:行者123 更新时间:2023-11-30 03:57:16 26 4
gpt4 key购买 nike

给定一个 Java Map,其中键和值都是可序列化的,我希望能够序列化键值对。是否有任何有效的方法可以给定 key ,我可以将键值对作为对象检索并序列化?我已经看到了 map 类的entrySet() 方法,但我不喜欢搜索该对两次。

最佳答案

map没有提供这样的方法。但是您仍然可以做什么,例如通过扩展 Map 实现 - HashMap<K,V>并实现这样的方法 -

Map<K,V> map = new HashMap<K,V>(){
public Entry<K,V> get(Object key) { // overloading get method in subclass
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e;
}
return null;
}


private Entry<K,V> getForNullKey() {
for (Entry<K,V> e = table[0]; e != null; e = e.next) {
if (e.key == null)
return e;
}
return null;
}};
...
Map.Entry<K,V> entry1 = map.get(key);// invoking Entry<K,V> get(Object key)

关于java - 将 Map 的键值对作为对象访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861311/

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