如何将对象从一个地图放到另一个地图



我有这样的Map

Map<String,GridCell> cellsMap

我将其传递给一个方法,该方法的返回应该包含一个Map(比如answerMap),其中包含cellsMap映射的所有条目以及一个包含String作为键和一个String作为值的额外条目。像这样:

  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; 

你有没有考虑过 Map.putAll() 方法?

例如

answerMap.putAll(cellsMap);

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

否则,您将不同类型的对象扔到同一地图中,当您稍后提取该信息时,这将使生活变得复杂。每次通过键提取时,您都必须检查返回对象的类型。请注意,ConcurrentHashMaps不保持广告顺序。

使用 clone() 方法。

HashMap answerMap = (HashMap)cellsMap.clone();
Map

接口具有 putall() 方法,该方法将 Map 中另一个对象的所有值相加。

最新更新