2014-04-09 40 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