我正在嘗試爲每個作爲輸入的文檔創建一個新的HashMap
。在pseudeocode我能想到的是這樣的:以遞歸方式創建Java中的圖集
For(eachInputDoc)
{
Map<String, String> mapInputNumber = new HashMap<String, String>;
}
因此,對於4號文件你會:
mapInput1
mapInput2
mapInput3
mapInput4
我怎樣才能做到這一點?
我正在嘗試爲每個作爲輸入的文檔創建一個新的HashMap
。在pseudeocode我能想到的是這樣的:以遞歸方式創建Java中的圖集
For(eachInputDoc)
{
Map<String, String> mapInputNumber = new HashMap<String, String>;
}
因此,對於4號文件你會:
mapInput1
mapInput2
mapInput3
mapInput4
我怎樣才能做到這一點?
它看起來像你試圖動態地聲明變量。你不能在Java中這樣做 - 變量本身是在編譯時確定的。但是,您可以創建列表:
List<Map<String, String>> maps = new ArrayList<Map<String, String>>();
for (Document doc : docs)
{
Map<String, String> map = new HashMap<String, String>();
// Populate map from doc
maps.add(map);
}
我仍然無法理解這樣的泛型和代碼。順帶一提,留意Martijn。我認爲他要去的地方:) –
我建議你做一個ArrayList的HashMap。
如果你知道/要引用的文件的名稱,你甚至可以使用包含HashMap的HashMap中。
您不能在Java中動態生成像mapInput1
,mapInput2
等名稱。你需要考慮數組或List
。你的問題也不是遞歸的。
我還會有一個圖來保存mapInputs是這樣的:
Map<Integer,Map<String,String>> context = new HashMap<Integer,Map<String,String>>();
for each(inputDoc)
{
Map<String, String> mapInput = new HashMap<String, String>();
context.put(index,mapInput);
}
ü具有帶表的形式給出(陣列,鏈接),而不是MAP,但是這取決於如何`重新要去的訪問inputMaps!我會說,使用ArrayList也是一個很好的!
我會做這樣的事情:
Map<MyDocClass, Map<String, String>> myDocData = new HashMapMap<MyDocClass, Map<String, String>>();
for(MyDocClass doc : myDocs) {
Map<String, String> data = new HashMap<String, String>();
// populate the data
myDocData.put(doc, data);
}
然後你就可以很容易地通過做
Map<String, String> data = myDocData.get(doc);
你需要把你的哈希映射到另一個訪問每個文檔的數據(動態)容器如ArrayList或其他HashMap。
嗯,使用HashMap ..你的問題究竟是什麼? – home
我希望總共有4個hashmaps,或10或50,具體取決於輸入的內容。 – chrstahl89
您正在尋找地圖序列。在Java中,這通常表示爲'ArrayList>',其中Sequence(ArrayList)中的每個元素表示一個文檔(HashMap),然而,稍後可能會更好地使''ArrayList '使Map不透明以那。 –
2011-09-02 18:54:01