2014-04-09 73 views
0

我真的不知道,如果「穿越」是正確的詞,但在Python,我可以這樣做:Python中的遍歷Java地圖?

restaurantDict['menus'][menuIdx]['sections'][sectionIdx]['option_groups'][sectionOptionGroupIdx]['options'] = sectionOptionObjects 

是否有可能「穿越」在Java中這種風格的地圖嗎?或者Python是瘋狂而瘋狂的?

+0

這是遍歷嗎?你只是分配一個嵌套的字典。 – arshajii

+0

如果「Map」的鍵和值允許,* yes *。而且是*是*因爲分配你需要使用'put'(在Map中)或者調用正確的setter方法,所以不能直接賦值。 –

+1

如果你能向我們展示有問題的Java代碼會更好。或者,你只是在尋找Java版本的Python示例? –

回答

3

是的,它可能在Java中。你只需要鏈爲所有,但最後的關鍵。獲得調用,然後調用。放:

// Equivalent Python code: foo["a"]["b"]["c"] = "bar"; 
HashMap<String, HashMap<String, HashMap<String, String>>> foo = new HashMap<String, HashMap<String, HashMap<String, String>>>(); 
foo.get("a").get("b").put("c", "bar"); 

這是Java做一個相當不愉快的事情,因爲這不是很地道的Java代碼。

儘管Python鼓勵定義對象及其關係,但良好的Java代碼通過定義適當的類來提前處理您正在處理的對象類型。在Python中堆疊字典可能是確定的,但它會導致糟糕的Java。

+0

+1。儘管我不得不承認,大多數事情都會導致糟糕的Java。 – Hyperboreus