2016-10-03 7 views
-1

私は座標を入力とし、グリッドの座標を概念化しています。私は2D配列を使っています。問題は、座標の中には10億を超えるものがあり、2Dアレイの最大サイズは約8億円だと私は信じています。私は、最大サイズを増やすためにJVMに割り当てられるメモリを増やすことができることを知っています。デフォルトの最大サイズ、または最大サイズを持たない別のxのyグリッドシステムを過ぎることなくこれを行う方法がありますか?ありがとうJavaの2D配列より大きい2Dグリッド

+1

[このような質問と回答] ://stackoverflow.com/questions/674186/making-a-very-large-java-array)? –

+0

あなたの配列は1つのインデックスサイズと1つの座標ステップを一致させるのはなぜですか?あなたの配列が拡大縮小されるようにいくつかの除算を行うことができますか?ポイントを追跡するのはどうですか? – matt

+0

オプション2:[同様の質問](http://stackoverflow.com/questions/22792097/alternatives-for-problems-involving-very-large-array-indexing-storing-very-large)のような疎な配列。 –

答えて

-1

私はあなたを正しく理解していますか?あなたは(1,3)のためにこれをするでしょうか?

[0][0][1][0] 
[0][0][0][0] 
[0][0][0][0] 
[0][0][0][0] 

座標を格納するためにそのサイズの配列が必要なコードでは、プログラムの動作を再考してください。 ArrayListなどで座標を格納するもう1つの方法は、各エントリが配列内の異なる占有位置になる場合です。そうすることで、あなたは占有されているスポットだけでなく、そうでないスポットにもメモリを使用しています。あなたが計画している方法であれば、グリッド上のすべての座標に32ビットを使用します。そのほとんどは0となります。

+0

質問に答えるこのアプローチはどのように尋ねられましたか? –

+0

@HovercraftFullOfEels私の担当者のためにコメントを使用することはできません。そうでなければ、この説明にコメントを使用しました。 – JitterbugChew

+0

ええ、私はそれを修正して、塗りつぶされた座標を必要としました。より大きい2D配列を作る方法があるのか​​、別のデータ型を使うことができるのか疑問に思っていました –