hashtable
大きなデータで使用しようとすると問題が発生します。111000を超えるレコードを含むテキスト ファイルがあり、75000 に達するとメモリ不足の例外がスローされました。これに対する解決策はありますか?
問題は次の行で発生します。
while ((text = reader.readLine())!= null);
と java.lang.String <init>
内部のためですが、問題は大きすぎて保存データを保持できないreadLine()
ことにあると思います。Xperia Neoでテストしたところ、別のサムスンのデバイスでは問題なく動作しましたが、失敗しました。hashtable
SoundUnit
私が保持しているオブジェクトhashtable
は、以下の構造を持っています:
private String filename;
private int start;
private int end;
SoundUnit オブジェクト内の 3 フィールドのすぐ上。
テキストからデータを読み取って保存するために使用するコードは次のhashtable
とおりです。
reader = new BufferedReader(new InputStreamReader(new FileInputStream(unitSelectionFile), "UTF-8"));
String text=null;
do {
if (text.length() != 0) {
if (mainHash.get(text)==null)
mainHash.put(key, soundUnit);
}
} while ((text = reader.readLine())!= null);