0

我有一个Map这样的:

Map<String,GridCell> cellsMap

我将它传递给一个方法,该方法的返回应该包含一个Map(比如说answerMap),它包含cellsMapmap的所有条目以及一个包含 a作为 key 和 a作为 value的额外条目。就像是 :StringString

  Map<String,Object> answerMap  = new ConcurrentHashMap<String,Object>();
    //answer should first contain all the map entries of cellsMap and then add an extra entry like the following
    answer.put(getId(), getSelectionValue()); // getSelectionValue() returns a String that contains coordinates of the selected cells.
     return answerMap; 
4

3 回答 3

3

您是否考虑过Map.putAll()方法?

例如

answerMap.putAll(cellsMap);

顺便说一句,我认为这不是一个好的对象模型。我认为您最好创建一个包含原始地图(可能是副本)和String/String对的附加字段的新类。

否则,您会将不同类型的对象扔到同一张地图中,当您稍后提取该信息时,这将使生活变得复杂。每次通过密钥提取时,您都必须检查返回的对象的类型。请注意,ConcurrentHashMaps不要维护插入顺序。

于 2012-08-09T08:41:42.100 回答
0

使用 clone() 方法。

HashMap answerMap = (HashMap)cellsMap.clone();
于 2012-08-09T08:45:39.730 回答
0

Map 接口有 putall() 方法,它在 Map 中添加另一个对象的所有值。

于 2012-08-09T10:33:08.260 回答