次のように HashMap を作成しています。
private HashMap <String, JSONArray> HiveMap;
HiveMap = new HashMap <String, JSONArray>();
また、計算が完了した後に HashMap に入れられる計算されたデータを格納するためのプライベート クラス変数もあります。
private JSONArray hiveList;
hiveList が計算された後、作成した HashMap (HiveMap) に hiveList を配置します。
HiveMap.put(hiveNode,hiveList);
ここで HiveMap を印刷すると、期待どおりの出力が得られ、フィールドhiveNode
とhiveList
既存の両方が Hashmap に含まれています。<"hiveNode":"hiveList">
これが完了した後、HashMap に入れたデータはhiveList
永続化されると想定しているため、次のコマンドを使用して hiveList 配列をクリアします。hiveList.clear();
しかし、hiveList をクリアした後に Hashmap を出力すると、hiveList のデータが HashMap からも削除されていることがわかります。
hiveList をクリアした後に HashMap を出力すると、次のようになります。<"hiveNode": >
私はこの振る舞いを理解していません。誰かがこれに光を当てることができれば幸いです。