按坐标索引对象列表的最惯用方法是什么?

时间:2011-09-13 12:59:12

标签: java python

我有一个强大的python背景和一个Java的新手,所以我尝试用java中的 Pythonic 方式做事并最终挣扎。目前我有一个问题,要弄清楚如何做坐标索引的商店对象,以便它们是可迭代的。我可能创建一个对象的二维数组,但我担心这需要大量的内存 AND 我必须每次迭代所有索引(当我偶尔只想做它时)获取所有对象。

在python中,我会使用带元组的字典作为键,但在Java中看起来不可能这样。

E.g。

class bar()
    pass

bar1 = bar()
bar2 = bar()
# etc

foo = { (0,1): bar1, (100,30): bar2 }

for x in foo.values():
    do_something()

1 个答案:

答案 0 :(得分:1)

  1. 不要犹豫记忆(不是现在,也许是以后)

  2. Java等效“class”是Map。由于Map是一个接口,暂时使用HashMap类。

  3. Map有一个方法values()来获取地图的所有值。

  4. 由于您的密钥不是标量,您可以创建自己的Coordinate类。请注意覆盖equals() and hashCode()