2012-01-26 32 views
0

我有比如這個地圖:商店另一個地圖內的地圖對象

Map<String, Integer> map = new HashMap<String,Integer>(); 

比我把一些值:

map.put("a", 2); 
map.put("b", 3); 

比我這個類序列化此對象:

public class MapObject implements Serializable { 

private static final long serialVersionUID = 1L; 

Map<String, Integer> map = new HashMap<String, Integer>(); 

public MapObject(Map<String, Integer> map) { 
    this.map = map; 
} 

}

我這樣做因爲我正在使用套接字,並且我想使用ObjectInputStream和ObjectOutputStream將地圖對象從客戶端傳遞到服務器。

現在我想問的是,如果我可以存儲在服務器這個Map對象,例如

MapObject mo; 

是否有可能存儲在另一個地圖此對象嗎?

Regards

+1

是地圖中的值* byte [] *或* Integer *?另外,如果它是* Integer *,那麼* map.put(「a」,「2」)*將不起作用,因爲「2」是* String *,而不是* Integer *。你應該編輯你的問題來解決所有這些問題:) – TacticalCoder 2012-01-26 23:10:14

+0

它應該沒問題。你想存儲什麼樣的地圖? – 2012-01-26 23:11:03

+0

HashMap已經實現了Serializable。 – Kal 2012-01-26 23:14:26

回答

1

您正在將兩個問題混合在一起。不知道你在問什麼:

  1. 你可以傳輸層次映射thro ObjectOutputStream嗎?
  2. 如何將地圖映射到地圖?

如果您問的是問題2,您不應該提及問題1,因爲它會混淆問題。或者你問這兩個問題?

回答問題2:

Map<String, Map<?,?>> mapOfMap = new HashMap<String, Map<?,?>>(); 

Map<String, Integer> mapA = new HashMap<String, Integer>(); 

mapOfMap.put("a", mapA); 

回答問題1:

當然。

...

要回答你的其他問題

集中的所有按鍵和迭代器,

Set<String> keys = mapOfMap.keySet(); 
Iterator<String> iterator = keys.iterator(); 

http://code.google.com/p/synthfuljava/source/browse/trunk/common/org/synthful/util/HashTreeNode.java

看到一個地圖地圖可以做些什麼的例子。

2004年,該樹散列節點被寫入(糟糕),並且需要像toStringBuffer一樣去除絨毛,但它足以說明xpath可尋址哈希樹。我還有另一個GWT版本,在其他地方刪除了絨毛。

+0

對不起。你是對的。問題1我已經做到了。我只是在詳細解釋我想要的內容。謝謝 – unnamed 2012-01-26 23:50:21

+0

還有一個問題。在mapOfMap中插入後,如何獲得mapA中的鍵和值? – unnamed 2012-01-26 23:58:22