2011-09-13 3 views
1

私は強烈なpythonの背景とJavaでの初心者の合計を持っているので、私はものをやろうとしますPythonic Javaの方法と苦労します。現在、ストアオブジェクトを座標でインデックスする方法を理解するのに問題があります。そのため、繰り返し可能です。私はオブジェクトの2次元配列を作成することができますが、私は多くのメモリを取ることになると恐れています私はすべてのインデックス(私は時々それをやりたいときに)すべてのオブジェクトを取得します。座標でオブジェクトのリストをインデックス化する最も無駄な方法は何ですか

Pythonでは、タプルをキーとして辞書を使用しますが、Javaではこのようなことはできません。

など。

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. マップには、地図のすべての値を取得するメソッドvalues()があります。

  4. キーがスカラーではないため、独自のCoordinatesクラスを作成できます。 equals() and hashCode()を無効にすることに注意してください。

+0

あなたが提案した通りにそれをやり遂げました。ありがとう! – Kimvais

関連する問題