我們正在努力的所有樹節點的存儲到以線性方式一個HashMap(遍歷節點之後節點)和運行到內存的問題(的OutOfMemoryError:Java堆空間),最大內存設置爲90MB(-Xmx90M)我們如何有效地將所有樹節點存儲到HashMap中?
這是我們所使用的代碼(包含一個HashMap內HashMap中):
HashMap<Integer, MyNode> refNodeMap
HashMap<String, HashMap<Integer, MyNode>> spNodeMap;
String Id;
toCopy是類型MYNODE對象。
if (refNodeMap.containsKey(Id)) {
spNodeMap.get(Id).put(toCopy.getId(), toCopy);
} else {
spNodeMap.put(Id, new HashMap<Integer, MyNode>());
spNodeMap.get(Id).put(toCopy.getId(), toCopy);
}
- 我們能否避免使用innerHashMap用一個類的對象?如果是的話怎麼會這個類是什麼樣子?
- 我們如何有效地將所有樹節點存儲到HashMap或任何其他集合中以便稍後檢索它?
什麼是你試圖存儲的數據/信息?以及如何/將在哪裏使用它們 – Adarsh 2013-05-08 11:57:26
使用HashMap實現樹中的節點是一個糟糕的主意。 HashMap有很多存儲開銷。 – 2013-05-08 11:57:48
你可能應該解釋一下你的「樹節點」是什麼,以及你爲什麼將它們放入hashmaps。多少節點是「全部」節點?對於某些節點,您將永遠耗盡內存。 – 2013-05-08 11:57:51