假设:
Object nestKey;
Object nestedKey;
Object nestedValue;
Map<T,Map<T,T>> nest;
Map<T,T> nested;
如何将映射添加到嵌套的位置:
nest.containsKey(nestKey)== true;
或者现有的馆藏库会更有效吗?
答案 0 :(得分:1)
这是一个相当普遍的习惯用语:
答案 1 :(得分:1)
您的意思是以下泛型方法?
static <U,V,W> W putNestedEntry(
Map<U,Map<V,W>> nest,
U nestKey,
V nestedKey,
W nestedValue)
{
Map<V,W> nested = nest.get(nestKey);
if (nested == null)
{
nested = new HashMap<V,W>();
nest.put(nestKey, nested);
}
return nested.put(nestedKey, nestedValue);
}
答案 2 :(得分:0)
不确定你的意思。我想你想要添加到嵌套地图,如下所示:
nest.get(nestKey).put(nestedKey, nestedValue);
这是不可能的,因为外部地图上的get会返回Map<?, ?>
类型的地图。你不能在它上面调用put方法。无界的通配符'?'如果您不知道Collection的内容类型但想要将它们视为对象,则应该使用它。如果要读取和修改内容,并且Map具有异构对象,则可以使用原始类型。这就像是:
Map<?, Map> nest;
最好的方法当然是(如果可能的话),使用同类Map并指定其类型。例如。 Map<String, String>
答案 3 :(得分:0)
试试这个
if(nest.containsKey(nestKey)){ ((Map)nest.get(nestKey))。put(nestedKey,nestedValue); }