Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureExplicitCapacity(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at FibonacciHeap.removemax(FibonacciHeap.java:148)
at UseFibonacciHeap.main(UseFibonacciHeap.java:61)
のEclipse上で私のJavaプログラムは、ファイルから文字列を読み込み、配列リストにそれらを挿入し、上の上記の例外をスローしahead.It計算をたくさんやっているを使用して上のJavaヒープスペース150以上の文字列に遭遇しました。私はsleepを使ってVMスペースを増やそうとしましたが、何も動作しません! 最終的な目標は、100万の文字列(すべて一意ではない)を操作することです。java.lang.OutOfMemoryErrorを:のArrayList
編集:ArrayListのtoVisitの
使用方法:クラスの
for (FibonacciNode curr = max_ptr; toVisit.isEmpty() || toVisit.get(0) != curr; curr = curr.right_sibling)
{
toVisit.add(curr);
...
}
VM引数: -Xms1024m -Xmx1524M
誰かがこれを行うのに最適な方法に私を導くことができます。私が使用できる別のデータ構造がありますか?ありがとう!!
追加質問へのあなたのコード。 Arraylistはすぐにメモリを使い果たしてはならないので、エラーはあなたのarraylistを使ってどのようにしているのでしょうか – baseballlover723
ecpliseのVM引数を表示 –
あなたはコードにいくつかのコンテキストを与えることができますか?すべての変数は何ですか?彼らはどこから来たのか?あなたはどこかに無限ループがあると思います。 – baseballlover723