0

私はMapこのようなものを持っています:

Map<String,GridCell> cellsMap

これをメソッドに渡すと、そのメソッドからの戻り値には、 mapのすべてのエントリと、 a をキーとして、 aを value として含む追加のエントリMapを含む a (say ) が含まれている必要があります。何かのようなもの :answerMapcellsMapStringString

  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

Map インターフェイスには、Map 内の別のオブジェクトのすべての値を追加する putall() メソッドがあります。

于 2012-08-09T10:33:08.260 に答える
0

clone() メソッドを使用します。

HashMap answerMap = (HashMap)cellsMap.clone();
于 2012-08-09T08:45:39.730 に答える