Java で long の配列を作成しようとしていますが、Eclipse で次のようなエラーが表示されます。
以下は私のコードです:
どうすればこれを解決できますか?
Javaで長いサイズの配列を作成できませんか?
long の配列は問題ありません: long[]
. ただし、すべての 配列はint
-indexed です。メソッドのパラメータ宣言を に変更long n
するだけで、準備完了です。int n
10^9 要素の配列が必要です
値を使用して、10 億の配列を作成できますint
。intn
を作成すると、配列を作成できますnew long[n]
注: これは 8 GB のヒープを使用します。
数式を使用してすべての要素を構築しているため、すべての値を動的に指定できるはずです。つまり、「仮想」配列であるコンポーネントを作成すると、それらすべての配列を生成する必要がなくなります。
私がこれを指摘する理由は、2 番目のループがk
非常に小さい場合、せいぜい数分かかる可能性が高く、簡単に数日かかる可能性があるためです。
k+1
ところで:すべてのコードを確認することはできませんが、時間ではなく一度割り当てられる値以上のものは必要ないようですn-k
。
インデックスの場合は使用する必要がありますが、使用する必要はint
ありませんlong
あなたは私の同情を持っています。メモリサイズが増加するたびに、これを実行します。今回は、メモリ サイズと並行して配列サイズを増やす必要がないという奇妙な期待があります。
あなたの最善の解決策は、おそらくlong get(long index)
andvoid set(long value, long index)
メソッドを使用して独自のクラスを作成することです。データを long[10][1000000000] として表し、自然な long インデックスと実際の int インデックスのペア間のマッピングをカプセル化できます。
n
(配列容量) は not でなければなりinteger
ませんlong