2011-09-13 71 views
1

索引對象列表的最具代表性的方式我有一個強大的python背景和一個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
  1. 不要猶豫內存(不是現在,也許以後)

  2. 相當於Java中的 「類」 是一個地圖。由於Map是一個接口,現在使用一個HashMap類。

  3. Map有一個方法values()來獲取地圖的所有值。

  4. 由於您的關鍵不是標量,您可以創建自己的座標類。注意覆蓋equals() and hashCode()

+0

完全按照您的建議進行操作。謝謝! – Kimvais